mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-22 03:06:41 +02:00
refactor(shared-ui): extract search-core for highlight + debounce
Both QuickInputBar (InputBar.svelte), CommandBar.svelte, and GlobalSpotlight were duplicating syntax highlighting and the 150ms search debounce. Pull these into a new `packages/shared-ui/src/search-core/` module so the two input surfaces stay in sync on feel and matching rules. - search-core/highlight.ts — HighlightPattern type, locale-aware getHighlightPatterns(), and the shared highlightText() (HTML-escape + span wrap). Patterns were previously in quick-input/highlightPatterns.ts + inline in CommandBar.svelte. - search-core/config.ts — SEARCH_DEBOUNCE_MS = 150. Used from InputBar, CommandBar, GlobalSpotlight, and apps/mana web SearchEngine. - quick-input/highlightPatterns.ts + types.ts become thin back-compat re-exports. - Public surface: @mana/shared-ui now exports getHighlightPatterns, highlightText, SEARCH_DEBOUNCE_MS, and the HighlightPattern type. No UX change. UIs still live in their own files (per earlier split recommendation: shared backend, separate surfaces). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ad1659f036
commit
24eb8b3b7f
10 changed files with 161 additions and 204 deletions
|
|
@ -7,6 +7,7 @@
|
|||
ContentSearcher,
|
||||
} from './types';
|
||||
import { createAppNavigationStore } from './appNavigationStore.svelte';
|
||||
import { SEARCH_DEBOUNCE_MS } from '../search-core';
|
||||
|
||||
interface Props {
|
||||
open: boolean;
|
||||
|
|
@ -160,7 +161,7 @@
|
|||
contentLoading = false;
|
||||
}
|
||||
}
|
||||
}, 150);
|
||||
}, SEARCH_DEBOUNCE_MS);
|
||||
});
|
||||
|
||||
// Group results by category for display
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue