@@ -230,11 +230,15 @@ function App() {
230230 calibration : bgCalibration
231231 } = useBgImageState ( ) ;
232232
233+ // Reading modal state (declared early because it's used in useGlobalSearchHotkeys)
234+ const [ readingModalOpen , setReadingModalOpen ] = useState ( false ) ;
235+
233236 // Get search UI context for opening the search bar
234237 const { open : openSearchBar , isOpen } = useSearchUI ( ) ;
235238
236239 // Set up global hotkeys for search (Ctrl+F to open, Escape is handled by the search bar itself)
237- useGlobalSearchHotkeys ( openSearchBar ) ;
240+ // Disable search hotkey when reading modal is open to allow normal browser search
241+ useGlobalSearchHotkeys ( openSearchBar , readingModalOpen ) ;
238242
239243 // ---------- graph (nodes/edges/notes/mode) ----------
240244 const [ graphData , setGraphData ] = useState ( ( ) => {
@@ -324,9 +328,14 @@ function App() {
324328 setShowNoteCountOverlay ( v => ! v ) ;
325329 } , [ ] ) ;
326330
327- // Reading modal state
328- const [ readingModalOpen , setReadingModalOpen ] = useState ( false ) ;
329- const openReadingModal = useCallback ( ( ) => setReadingModalOpen ( true ) , [ ] ) ;
331+ // Reading modal callbacks (state declared earlier before useGlobalSearchHotkeys)
332+ const openReadingModal = useCallback ( ( ) => {
333+ setReadingModalOpen ( true ) ;
334+ // Auto-collapse universal menu when reading modal opens
335+ if ( ! universalMenuCollapsed ) {
336+ dispatchAppState ( { type : ACTION_TYPES . SET_UNIVERSAL_MENU_COLLAPSED , payload : { collapsed : true } } ) ;
337+ }
338+ } , [ universalMenuCollapsed ] ) ;
330339 const closeReadingModal = useCallback ( ( ) => setReadingModalOpen ( false ) , [ ] ) ;
331340
332341 // Share modal state
@@ -1306,7 +1315,8 @@ useEffect(() => {
13061315 />
13071316
13081317 { /* Mobile Search Button - only visible on mobile, top center */ }
1309- < div className = { `fixed top-0 left-0 right-0 z-999 pa2 dn-m dn-l tc w-100 ${ isOpen ? 'dn' : '' } ` } >
1318+ { /* Hide when reading modal is open to avoid interference */ }
1319+ < div className = { `fixed top-0 left-0 right-0 z-999 pa2 dn-m dn-l tc w-100 ${ isOpen || readingModalOpen ? 'dn' : '' } ` } >
13101320 < div className = "dib" >
13111321 < MobileSearchButton />
13121322 </ div >
0 commit comments