SUMMARY:
Duplicate fullscreenchange listener and deprecated base64 helpers in page.tsx cause double fullscreen state updates and unsafe share-link encoding (Unicode problems).
Steps to reproduce:
- Open the app (home page).
- Toggle fullscreen (via header button or the command).
- Observe duplicate state updates/flicker or unexpected behavior.
- (Optional) Create a share link with non‑ASCII text and try to load it.
Expected:
Single fullscreen state update per enter/exit; share links encode/decode UTF‑8 reliably.
Actual:
Two identical fullscreenchange handlers are registered so the state update runs twice (can cause UI flicker, double renders, or stale state). Base64 helpers use escape /unescape which are deprecated and can corrupt Unicode in shared code.
SUMMARY:
Duplicate fullscreenchange listener and deprecated base64 helpers in page.tsx cause double fullscreen state updates and unsafe share-link encoding (Unicode problems).
Steps to reproduce:
Expected:
Single fullscreen state update per enter/exit; share links encode/decode UTF‑8 reliably.
Actual:
Two identical fullscreenchange handlers are registered so the state update runs twice (can cause UI flicker, double renders, or stale state). Base64 helpers use escape /unescape which are deprecated and can corrupt Unicode in shared code.