@@ -20,6 +20,7 @@ export const useAppLogic = (
2020 const [ isSettingsOpen , setIsSettingsOpen ] = React . useState ( false ) ;
2121 const [ isAiChatOpen , setIsAiChatOpen ] = React . useState ( false ) ;
2222 const [ isFileRankOpen , setIsFileRankOpen ] = React . useState ( false ) ;
23+ const [ isShortcutsOpen , setIsShortcutsOpen ] = React . useState ( false ) ;
2324 const [ toastMessage , setToastMessage ] = React . useState < string | null > ( null ) ;
2425 const [ confirmation , setConfirmation ] = React . useState < ConfirmationState > ( { isOpen : false , title : '' , message : '' , onConfirm : ( ) => { } } ) ;
2526
@@ -188,9 +189,11 @@ export const useAppLogic = (
188189 if ( e . key === 'f' ) { e . preventDefault ( ) ; if ( processedData ) setIsSearchOpen ( p => ! p ) ; }
189190 if ( e . key === 's' ) { e . preventDefault ( ) ; if ( processedData ) handleSave ( ) ; }
190191 if ( e . key === 'o' ) { e . preventDefault ( ) ; handleFileSelect ( ) ; }
192+ if ( e . key === '/' ) { e . preventDefault ( ) ; setIsShortcutsOpen ( p => ! p ) ; }
191193 }
192194 if ( e . key === 'Escape' ) {
193- if ( isAiChatOpen ) { e . preventDefault ( ) ; setIsAiChatOpen ( false ) ; }
195+ if ( isShortcutsOpen ) { e . preventDefault ( ) ; setIsShortcutsOpen ( false ) ; }
196+ else if ( isAiChatOpen ) { e . preventDefault ( ) ; setIsAiChatOpen ( false ) ; }
194197 else if ( isSearchOpen ) { e . preventDefault ( ) ; setIsSearchOpen ( false ) ; }
195198 else if ( isFileRankOpen ) { e . preventDefault ( ) ; setIsFileRankOpen ( false ) ; }
196199 else if ( isSettingsOpen ) { e . preventDefault ( ) ; setIsSettingsOpen ( false ) ; }
@@ -199,7 +202,7 @@ export const useAppLogic = (
199202 } ;
200203 window . addEventListener ( 'keydown' , handleGlobalKeys ) ;
201204 return ( ) => window . removeEventListener ( 'keydown' , handleGlobalKeys ) ;
202- } , [ isSearchOpen , isSettingsOpen , isAiChatOpen , isFileRankOpen , isLoading , processedData , handleSave , handleFileSelect , handleCancel ] ) ;
205+ } , [ isSearchOpen , isSettingsOpen , isAiChatOpen , isFileRankOpen , isShortcutsOpen , isLoading , processedData , handleSave , handleFileSelect , handleCancel ] ) ;
203206
204207 // --- Memoized Stats ---
205208 const stats = React . useMemo ( ( ) => {
@@ -219,7 +222,7 @@ export const useAppLogic = (
219222 editingPath, markdownPreviewPaths, confirmation,
220223 isDark, panelWidth, extractContent, fontSize, showCharCount, maxCharsThreshold,
221224 lastProcessedFiles, mobileView, stats,
222- isSearchOpen, isFileRankOpen, searchResults, activeResultIndex, isMobile, isAiChatOpen,
225+ isSearchOpen, isFileRankOpen, isShortcutsOpen , searchResults, activeResultIndex, isMobile, isAiChatOpen,
223226 selectedFilePath, selectedFile, activeView,
224227 searchQuery, searchOptions, activeMatchIndexInFile,
225228 } ,
@@ -230,7 +233,7 @@ export const useAppLogic = (
230233 handleDeleteFile, handleFileTreeSelect, setEditingPath, handleSaveEdit, handleToggleMarkdownPreview,
231234 handleMouseDownResize,
232235 handleMobileViewToggle,
233- setIsSearchOpen, setIsFileRankOpen, handleSearch, handleNavigate, setIsAiChatOpen,
236+ setIsSearchOpen, setIsFileRankOpen, setIsShortcutsOpen , handleSearch, handleNavigate, setIsAiChatOpen,
234237 setActiveView,
235238 handleCopyPath,
236239 handleToggleExclude,
0 commit comments