From d4127626b10c045c48f632ae76c936d0c8388941 Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Thu, 1 May 2025 21:31:07 +1000 Subject: [PATCH] feat: cleaned code + improved performance --- .../built-in/globalSearch/core/index.ts | 141 ------------------ .../client-vector-search.md} | 0 .../components/AssessmentItem.svelte | 19 +-- .../{ => src}/components/Calculator.svelte | 0 .../{ => src/components}/SearchBar.svelte | 14 +- .../{ => src}/components/unitMap.ts | 0 .../globalSearch/{ => src}/core/commands.ts | 0 .../built-in/globalSearch/src/core/index.ts | 89 +++++++++++ .../globalSearch/src/core/mountSearchBar.ts | 56 +++++++ .../globalSearch/{ => src}/core/styles.css | 0 .../globalSearch/{ => src}/core/types.ts | 0 .../{ => src}/indexing/actions.ts | 0 .../globalSearch/{ => src}/indexing/db.ts | 0 .../{ => src}/indexing/indexer.ts | 0 .../globalSearch/{ => src}/indexing/jobs.ts | 0 .../{ => src}/indexing/renderComponents.ts | 0 .../globalSearch/{ => src}/indexing/types.ts | 0 .../{ => src}/indexing/worker/vectorWorker.ts | 1 - .../indexing/worker/vectorWorkerManager.ts | 0 .../{ => src/search}/searchUtils.ts | 20 ++- .../{ => src}/search/vector/vectorSearch.ts | 11 +- .../{ => src}/search/vector/vectorTypes.ts | 0 .../globalSearch/src/ui/Shortcut.svelte | 0 .../utils/dynamicItems.ts} | 0 .../utils/highlight.ts} | 0 src/plugins/index.ts | 2 +- 26 files changed, 165 insertions(+), 188 deletions(-) delete mode 100644 src/plugins/built-in/globalSearch/core/index.ts rename src/plugins/built-in/globalSearch/{client-vector-search-docs.md => docs/client-vector-search.md} (100%) rename src/plugins/built-in/globalSearch/{ => src}/components/AssessmentItem.svelte (76%) rename src/plugins/built-in/globalSearch/{ => src}/components/Calculator.svelte (100%) rename src/plugins/built-in/globalSearch/{ => src/components}/SearchBar.svelte (97%) rename src/plugins/built-in/globalSearch/{ => src}/components/unitMap.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/core/commands.ts (100%) create mode 100644 src/plugins/built-in/globalSearch/src/core/index.ts create mode 100644 src/plugins/built-in/globalSearch/src/core/mountSearchBar.ts rename src/plugins/built-in/globalSearch/{ => src}/core/styles.css (100%) rename src/plugins/built-in/globalSearch/{ => src}/core/types.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/actions.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/db.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/indexer.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/jobs.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/renderComponents.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/types.ts (100%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/worker/vectorWorker.ts (99%) rename src/plugins/built-in/globalSearch/{ => src}/indexing/worker/vectorWorkerManager.ts (100%) rename src/plugins/built-in/globalSearch/{ => src/search}/searchUtils.ts (88%) rename src/plugins/built-in/globalSearch/{ => src}/search/vector/vectorSearch.ts (66%) rename src/plugins/built-in/globalSearch/{ => src}/search/vector/vectorTypes.ts (100%) create mode 100644 src/plugins/built-in/globalSearch/src/ui/Shortcut.svelte rename src/plugins/built-in/globalSearch/{dynamicSearch.ts => src/utils/dynamicItems.ts} (100%) rename src/plugins/built-in/globalSearch/{highlightUtils.ts => src/utils/highlight.ts} (100%) diff --git a/src/plugins/built-in/globalSearch/core/index.ts b/src/plugins/built-in/globalSearch/core/index.ts deleted file mode 100644 index 21d98503..00000000 --- a/src/plugins/built-in/globalSearch/core/index.ts +++ /dev/null @@ -1,141 +0,0 @@ -import type { Plugin } from "@/plugins/core/types"; -import { BasePlugin } from "@/plugins/core/settings"; -import { - booleanSetting, - defineSettings, - Setting, - stringSetting, -} from "@/plugins/core/settingsHelpers"; -import renderSvelte from "@/interface/main"; -import SearchBar from "../SearchBar.svelte"; -import styles from "./styles.css?inline"; -import { unmount } from "svelte"; -import { waitForElm } from "@/seqta/utils/waitForElm"; -import { runIndexing } from "../indexing/indexer"; -import { VectorWorkerManager } from "../indexing/worker/vectorWorkerManager"; -import { initVectorSearch } from "../search/vector/vectorSearch"; - -const settings = defineSettings({ - searchHotkey: stringSetting({ - default: "ctrl+k", - title: "Search Hotkey", - description: "Keyboard shortcut to open the search (cmd on Mac)", - }), - showRecentFirst: booleanSetting({ - default: true, - title: "Show Recent First", - description: "Sort dynamic content by most recent first", - }), - transparencyEffects: booleanSetting({ - default: true, - title: "Transparency Effects", - description: "Enable transparency effects for the search bar", - }), - runIndexingOnLoad: booleanSetting({ - default: true, - title: "Index on Page Load", - description: "Run content indexing when SEQTA loads", - }), -}); - -class GlobalSearchPlugin extends BasePlugin { - @Setting(settings.searchHotkey) - searchHotkey!: string; - - @Setting(settings.showRecentFirst) - showRecentFirst!: boolean; - - @Setting(settings.transparencyEffects) - transparencyEffects!: boolean; - - @Setting(settings.runIndexingOnLoad) - runIndexingOnLoad!: boolean; -} - -const settingsInstance = new GlobalSearchPlugin(); - -const globalSearchPlugin: Plugin = { - id: "global-search", - name: "Global Search", - description: "Quick search for everything in SEQTA", - version: "1.0.0", - settings: settingsInstance.settings, - disableToggle: true, - styles: styles, - - run: async (api) => { - let app: any; - - initVectorSearch(); - - // Run initial indexing and update dynamic items - if (api.settings.runIndexingOnLoad) { - setTimeout(async () => { - await runIndexing(); - }, 2000); // Delay initial indexing to let page load - } - - const mountSearchBar = (titleElement: Element) => { - if (titleElement.querySelector(".search-trigger")) { - return; - } - - const searchButton = document.createElement("div"); - searchButton.className = "search-trigger"; - searchButton.innerHTML = /* html */ ` - - - - - -

Quick search...

- ⌘K - `; - - titleElement.appendChild(searchButton); - - const searchRoot = document.createElement("div"); - document.body.appendChild(searchRoot); - const searchRootShadow = searchRoot.attachShadow({ mode: "open" }); - - console.log("adding event listener to search button"); - - searchButton.addEventListener("click", () => { - console.log("search button clicked"); - // @ts-ignore - Intentionally adding to window - window.setCommandPalleteOpen(true); - }); - - try { - app = renderSvelte(SearchBar, searchRootShadow, { - transparencyEffects: api.settings.transparencyEffects ? true : false, - showRecentFirst: api.settings.showRecentFirst, - }); - } catch (error) { - console.error("Error rendering Svelte component:", error); - } - }; - - const title = document.querySelector("#title"); - - if (title) { - mountSearchBar(title); - } else { - await waitForElm("#title", true, 100, 60); - mountSearchBar(document.querySelector("#title") as Element); - } - - return () => { - const searchButton = document.querySelector(".search-trigger"); - const searchRoot = document.querySelector(".global-search-root"); - if (searchButton) searchButton.remove(); - if (searchRoot) searchRoot.remove(); - - // Clean up workers - VectorWorkerManager.getInstance().terminate(); - unmount(app); - }; - }, -}; - -export default globalSearchPlugin; diff --git a/src/plugins/built-in/globalSearch/client-vector-search-docs.md b/src/plugins/built-in/globalSearch/docs/client-vector-search.md similarity index 100% rename from src/plugins/built-in/globalSearch/client-vector-search-docs.md rename to src/plugins/built-in/globalSearch/docs/client-vector-search.md diff --git a/src/plugins/built-in/globalSearch/components/AssessmentItem.svelte b/src/plugins/built-in/globalSearch/src/components/AssessmentItem.svelte similarity index 76% rename from src/plugins/built-in/globalSearch/components/AssessmentItem.svelte rename to src/plugins/built-in/globalSearch/src/components/AssessmentItem.svelte index 89daf445..76a0e7f5 100644 --- a/src/plugins/built-in/globalSearch/components/AssessmentItem.svelte +++ b/src/plugins/built-in/globalSearch/src/components/AssessmentItem.svelte @@ -1,6 +1,6 @@