@@ -991,11 +991,12 @@ const MainApp: React.FC = () => {
991991
992992 useEffect ( ( ) => {
993993 const documentIds = new Set ( items . filter ( item => item . type === 'document' ) . map ( item => item . id ) ) ;
994+ const allItemIds = new Set ( items . map ( item => item . id ) ) ;
994995 setTabState ( prev => {
995996 const filteredOrder = prev . order . filter ( id => documentIds . has ( id ) ) ;
996997 const orderChanged = filteredOrder . length !== prev . order . length ;
997998 let nextActive = prev . activeId ;
998- if ( nextActive && ! documentIds . has ( nextActive ) ) {
999+ if ( nextActive && ! allItemIds . has ( nextActive ) ) {
9991000 nextActive = filteredOrder [ filteredOrder . length - 1 ] ?? null ;
10001001 }
10011002 if ( ! orderChanged && nextActive === prev . activeId ) {
@@ -2009,6 +2010,7 @@ const MainApp: React.FC = () => {
20092010 { id : 'new-document' , name : 'Create New Document' , action : ( ) => handleNewDocument ( ) , category : 'File' , icon : PlusIcon , shortcut : [ 'Control' , 'N' ] , keywords : 'add create file' } ,
20102011 { id : 'new-code-file' , name : 'Create New Code File' , action : handleOpenNewCodeFileModal , category : 'File' , icon : CodeIcon , shortcut : [ 'Control' , 'Shift' , 'N' ] , keywords : 'add create script' } ,
20112012 { id : 'new-folder' , name : 'Create New Folder' , action : handleNewRootFolder , category : 'File' , icon : FolderPlusIcon , keywords : 'add create directory' } ,
2013+ { id : 'new-subfolder' , name : 'Create New Subfolder' , action : handleNewSubfolder , category : 'File' , icon : FolderDownIcon , keywords : 'add create directory child' } ,
20122014 { id : 'new-template' , name : 'Create New Template' , action : handleNewTemplate , category : 'File' , icon : DocumentDuplicateIcon , keywords : 'add create template' } ,
20132015 { id : 'new-from-template' , name : 'New Document from Template...' , action : ( ) => { addLog ( 'INFO' , 'Command: New Document from Template.' ) ; setCreateFromTemplateOpen ( true ) ; } , category : 'File' , icon : DocumentDuplicateIcon , keywords : 'add create file instance' } ,
20142016 { id : 'duplicate-item' , name : 'Duplicate Selection' , action : handleDuplicateSelection , category : 'File' , icon : CopyIcon , keywords : 'copy clone' } ,
@@ -2020,7 +2022,7 @@ const MainApp: React.FC = () => {
20202022 { id : 'toggle-info' , name : 'Toggle Info View' , action : ( ) => { addLog ( 'INFO' , 'Command: Toggle Info View.' ) ; setView ( v => v === 'info' ? 'editor' : 'info' ) ; } , category : 'View' , icon : InfoIcon , keywords : 'help docs readme' } ,
20212023 { id : 'open-about' , name : 'About DocForge' , action : handleOpenAbout , category : 'Help' , icon : SparklesIcon , keywords : 'about credits information' } ,
20222024 { id : 'toggle-logs' , name : 'Toggle Logs Panel' , action : ( ) => { addLog ( 'INFO' , 'Command: Toggle Logs Panel.' ) ; setIsLoggerVisible ( v => ! v ) ; } , category : 'View' , icon : TerminalIcon , keywords : 'debug console' } ,
2023- ] , [ handleNewDocument , handleOpenNewCodeFileModal , handleNewRootFolder , handleDeleteSelection , handleNewTemplate , toggleSettingsView , handleDuplicateSelection , selectedIds , addLog , handleToggleCommandPalette , handleFormatDocument , handleOpenAbout ] ) ;
2025+ ] , [ handleNewDocument , handleOpenNewCodeFileModal , handleNewRootFolder , handleNewSubfolder , handleDeleteSelection , handleNewTemplate , toggleSettingsView , handleDuplicateSelection , selectedIds , addLog , handleToggleCommandPalette , handleFormatDocument , handleOpenAbout ] ) ;
20242026
20252027 const enrichedCommands = useMemo ( ( ) => {
20262028 return commands . map ( command => {
0 commit comments