diff --git a/apps/client/src/widgets/ribbon/SearchDefinitionTab.tsx b/apps/client/src/widgets/ribbon/SearchDefinitionTab.tsx index 55c25f73a..78cc24493 100644 --- a/apps/client/src/widgets/ribbon/SearchDefinitionTab.tsx +++ b/apps/client/src/widgets/ribbon/SearchDefinitionTab.tsx @@ -6,7 +6,7 @@ import attributes from "../../services/attributes"; import FNote from "../../entities/fnote"; import toast from "../../services/toast"; import froca from "../../services/froca"; -import { useContext, useEffect, useRef, useState } from "preact/hooks"; +import { useContext, useEffect, useState } from "preact/hooks"; import { ParentComponent } from "../react/react_utils"; import { useTriliumEvent } from "../react/hooks"; import appContext from "../../components/app_context"; @@ -26,7 +26,6 @@ export default function SearchDefinitionTab({ note, ntxId, hidden }: TabContext) const parentComponent = useContext(ParentComponent); const [ searchOptions, setSearchOptions ] = useState<{ availableOptions: SearchOption[], activeOptions: SearchOption[] }>(); const [ error, setError ] = useState<{ message: string }>(); - const autoExecutedRef = useRef(null); function refreshOptions() { if (!note) return; @@ -76,18 +75,25 @@ export default function SearchDefinitionTab({ note, ntxId, hidden }: TabContext) useEffect(() => { async function autoExecute() { - console.log('Effect running, noteId:', note?.noteId, 'ref:', autoExecutedRef.current); - if (autoExecutedRef.current !== note?.noteId && note?.hasLabel("autoExecuteSearch")) { - console.log('Setting ref to:', note.noteId); - autoExecutedRef.current = note.noteId; - console.log('Ref after setting:', autoExecutedRef.current); - await refreshResults(); - parentComponent?.triggerCommand("toggleRibbonTabBookProperties", {}); + if (!note?.hasLabel('autoExecuteSearch')) { + return; } - } + console.log('Executing search'); + + // Only execute if no results exist yet + await refreshResults(); + + console.log('Executed search'); + + const hasResults = note.children && note.children.length > 0; + + if (hasResults) { + parentComponent?.triggerCommand('toggleRibbonTabBookProperties', { ntxId }); + } + } autoExecute(); - }, [note?.noteId]); + }, [note]); return (