fix(fullscreen): ignore shortcut in editable fields

This commit is contained in:
AK 2026-04-30 12:23:15 -04:00
parent dfe0d08a78
commit fa3cd0f5b2

View file

@ -10,6 +10,16 @@ type Props = {
children: React.ReactNode, children: React.ReactNode,
}; };
const isTextInputFocused = () => {
const activeElement = document.activeElement;
return activeElement instanceof HTMLElement &&
(activeElement.tagName === 'INPUT' ||
activeElement.tagName === 'TEXTAREA' ||
activeElement.tagName === 'SELECT' ||
activeElement.isContentEditable);
};
const FullscreenProvider = ({ children }: Props) => { const FullscreenProvider = ({ children }: Props) => {
const shell = useShell(); const shell = useShell();
const { core } = useServices(); const { core } = useServices();
@ -47,7 +57,12 @@ const FullscreenProvider = ({ children }: Props) => {
fullscreen ? exitFullscreen() : requestFullscreen(); fullscreen ? exitFullscreen() : requestFullscreen();
}, [fullscreen, exitFullscreen, requestFullscreen]); }, [fullscreen, exitFullscreen, requestFullscreen]);
onShortcut('fullscreen', toggleFullscreen, [toggleFullscreen]); const toggleFullscreenFromShortcut = useCallback(() => {
if (isTextInputFocused()) return;
toggleFullscreen();
}, [toggleFullscreen]);
onShortcut('fullscreen', toggleFullscreenFromShortcut, [toggleFullscreenFromShortcut]);
useEffect(() => { useEffect(() => {
if (!core?.active) return; if (!core?.active) return;