From ce9b464d23c7cea214d550516da5fd7df4399859 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 16 May 2025 06:49:28 -0700 Subject: refactor(CommandPalette): DRY matching logic --- src/lib/CommandPalette/CommandPalette.svelte | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/lib') diff --git a/src/lib/CommandPalette/CommandPalette.svelte b/src/lib/CommandPalette/CommandPalette.svelte index cdf962d7..2d2ec6ee 100644 --- a/src/lib/CommandPalette/CommandPalette.svelte +++ b/src/lib/CommandPalette/CommandPalette.svelte @@ -20,14 +20,18 @@ if (!itemIDs.has(item.url)) itemIDs.set(item.url, index); }); - const doesActionMatch = (action: CommandPaletteAction) => - action.name - .toLowerCase() - .replace(/\s+/g, '') - .includes(search.toLowerCase().replace(/\s+/g, '')) || - action.tags?.some((tag) => - tag.toLowerCase().replace(/\s+/g, '').includes(search.toLowerCase().replace(/\s+/g, '')) + const doesActionMatch = (action: CommandPaletteAction) => { + const doesActionIncludePattern = (query: string, action: string) => { + const normalise = (input: string) => input.toLowerCase().replace(/\s+/g, ''); + + return normalise(query).includes(normalise(action)); + }; + + return ( + doesActionIncludePattern(action.name, search) || + action.tags?.some((tag) => doesActionIncludePattern(tag, search)) ); + }; filtered = []; -- cgit v1.2.3