diff --git a/docs/mobile-quality-prd.md b/docs/mobile-quality-prd.md index 02429f6..8f93046 100644 --- a/docs/mobile-quality-prd.md +++ b/docs/mobile-quality-prd.md @@ -79,6 +79,7 @@ spot-checked each round — no regressions introduced by mobile fixes. | Round | layout | readability | tap-targets | navigation | polish | high-sev findings | |---|---|---|---|---|---|---| +| 1 (before fixes) | 5 | 7 | 6 | 8 | 7 | 1 (topbar overflow at 768/844 — breakpoint gap) | ## Won't-fix / disputed diff --git a/internal/webapp/frontend/src/components/ShareDialog.tsx b/internal/webapp/frontend/src/components/ShareDialog.tsx index da1682b..d44ebc7 100644 --- a/internal/webapp/frontend/src/components/ShareDialog.tsx +++ b/internal/webapp/frontend/src/components/ShareDialog.tsx @@ -1,3 +1,4 @@ +import { useEffect } from "react"; import { api } from "../api/http"; import { copyText } from "../util"; import { toast } from "../toast"; @@ -14,6 +15,13 @@ export function ShareDialog({ onClose: () => void; }) { const token = url.split("/s/")[1]; + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") onClose(); + }; + document.addEventListener("keydown", onKey); + return () => document.removeEventListener("keydown", onKey); + }, [onClose]); return (