@@ -8,16 +8,16 @@ export const useNodes = () => {
88 const [ nodes , setNodes ] = useState < Node [ ] > ( [ ] ) ;
99 const [ isLoading , setIsLoading ] = useState ( true ) ;
1010
11- const refreshNodes = useCallback ( async ( ) => {
12- setIsLoading ( true ) ;
11+ const refreshNodes = useCallback ( async ( silent : boolean = false ) => {
12+ if ( ! silent ) setIsLoading ( true ) ;
1313 try {
1414 const fetchedNodes = await repository . getNodeTree ( ) ;
1515 setNodes ( fetchedNodes ) ;
1616 addLog ( 'DEBUG' , 'Node tree refreshed from database.' ) ;
1717 } catch ( error ) {
1818 addLog ( 'ERROR' , `Failed to refresh nodes: ${ error instanceof Error ? error . message : String ( error ) } ` ) ;
1919 } finally {
20- setIsLoading ( false ) ;
20+ if ( ! silent ) setIsLoading ( false ) ;
2121 }
2222 } , [ addLog ] ) ;
2323
@@ -28,44 +28,44 @@ export const useNodes = () => {
2828 const addNode = useCallback ( async ( node : Omit < Node , 'node_id' | 'sort_order' | 'created_at' | 'updated_at' > ) : Promise < Node > => {
2929 const newNode = await repository . addNode ( node ) ;
3030 addLog ( 'INFO' , `New ${ node . node_type } created with title: "${ node . title } "` ) ;
31- await refreshNodes ( ) ; // Refresh to get correct sorting and structure
31+ await refreshNodes ( true ) ; // Refresh to get correct sorting and structure
3232 return newNode ;
3333 } , [ addLog , refreshNodes ] ) ;
3434
3535 const updateNode = useCallback ( async ( nodeId : string , updates : Partial < Pick < Node , 'title' | 'parent_id' > & { language_hint ?: string | null ; default_view_mode ?: ViewMode | null } > ) => {
3636 await repository . updateNode ( nodeId , updates ) ;
3737 addLog ( 'DEBUG' , `Node updated with ID: ${ nodeId } . Refreshing tree.` ) ;
38- await refreshNodes ( ) ;
38+ await refreshNodes ( true ) ;
3939 } , [ addLog , refreshNodes ] ) ;
4040
4141 const deleteNode = useCallback ( async ( nodeId : string ) => {
4242 await repository . deleteNode ( nodeId ) ;
4343 addLog ( 'INFO' , `Deleted node and its descendants starting from root ID: ${ nodeId } ` ) ;
44- await refreshNodes ( ) ;
44+ await refreshNodes ( true ) ;
4545 } , [ addLog , refreshNodes ] ) ;
4646
4747 const deleteNodes = useCallback ( async ( nodeIds : string [ ] ) => {
4848 if ( nodeIds . length === 0 ) return ;
4949 await repository . deleteNodes ( nodeIds ) ;
5050 addLog ( 'INFO' , `Deleted ${ nodeIds . length } node(s) and their descendants.` ) ;
51- await refreshNodes ( ) ;
51+ await refreshNodes ( true ) ;
5252 } , [ addLog , refreshNodes ] ) ;
5353
5454 const duplicateNodes = useCallback ( async ( nodeIds : string [ ] ) => {
5555 await repository . duplicateNodes ( nodeIds ) ;
5656 addLog ( 'INFO' , `Duplicated ${ nodeIds . length } item(s).` ) ;
57- await refreshNodes ( ) ;
57+ await refreshNodes ( true ) ;
5858 } , [ addLog , refreshNodes ] ) ;
5959
6060 const moveNodes = useCallback ( async ( draggedIds : string [ ] , targetId : string | null , position : 'before' | 'after' | 'inside' ) => {
6161 await repository . moveNodes ( draggedIds , targetId , position ) ;
6262 addLog ( 'INFO' , `Moved ${ draggedIds . length } item(s).` ) ;
63- await refreshNodes ( ) ;
63+ await refreshNodes ( true ) ;
6464 } , [ addLog , refreshNodes ] ) ;
65-
65+
6666 const updateDocumentContent = useCallback ( async ( nodeId : string , newContent : string ) : Promise < void > => {
67- await repository . updateDocumentContent ( nodeId , newContent ) ;
68- addLog ( 'DEBUG' , `Content for node ${ nodeId } saved.` ) ;
67+ await repository . updateDocumentContent ( nodeId , newContent ) ;
68+ addLog ( 'DEBUG' , `Content for node ${ nodeId } saved.` ) ;
6969 } , [ addLog ] ) ;
7070
7171 const importFiles = useCallback (
@@ -82,7 +82,7 @@ export const useNodes = () => {
8282 async ( payload : DraggedNodeTransfer , targetId : string | null , position : 'before' | 'after' | 'inside' ) => {
8383 const createdIds = await repository . importNodesFromTransfer ( payload , targetId , position ) ;
8484 addLog ( 'INFO' , `Copied ${ createdIds . length } item(s) from external workspace.` ) ;
85- await refreshNodes ( ) ;
85+ await refreshNodes ( true ) ;
8686 return createdIds ;
8787 } ,
8888 [ addLog , refreshNodes ]
@@ -91,7 +91,7 @@ export const useNodes = () => {
9191 const setNodeLock = useCallback ( async ( nodeId : string , locked : boolean ) => {
9292 await repository . setNodeLock ( nodeId , locked ) ;
9393 addLog ( 'DEBUG' , `Set lock state for node ${ nodeId } to ${ locked ? 'locked' : 'unlocked' } .` ) ;
94- await refreshNodes ( ) ;
94+ await refreshNodes ( true ) ;
9595 } , [ addLog , refreshNodes ] ) ;
9696
9797 const createDocumentFromClipboard = useCallback ( async (
@@ -106,7 +106,7 @@ export const useNodes = () => {
106106 if ( summary . warnings . length > 0 ) {
107107 summary . warnings . forEach ( warning => addLog ( 'WARNING' , warning ) ) ;
108108 }
109- await refreshNodes ( ) ;
109+ await refreshNodes ( true ) ;
110110 return result ;
111111 } , [ addLog , refreshNodes ] ) ;
112112
0 commit comments