diff --git a/.gitignore b/.gitignore index 5ede36d..6a1335a 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ dist .rpt2_cache .cache .docz +.idea diff --git a/packages/docz-theme-default/src/components/shared/Sidebar/index.tsx b/packages/docz-theme-default/src/components/shared/Sidebar/index.tsx index 8078c30..47b2b05 100644 --- a/packages/docz-theme-default/src/components/shared/Sidebar/index.tsx +++ b/packages/docz-theme-default/src/components/shared/Sidebar/index.tsx @@ -134,6 +134,7 @@ interface State { state: { docs?: Entry[] | null searching?: boolean + lastVal: string } } @@ -156,7 +157,7 @@ const mapper = { config: , docs: , media: , - state: , + state: , toggle: , } @@ -190,7 +191,14 @@ export const Sidebar = () => ( const docsWithoutMenu = docs.filter((doc: Entry) => !doc.menu) const fromMenu = (menu: string) => docs.filter(doc => doc.menu === menu) - const search = (val: string) => match(docs, val, { keys: ['name'] }) + const search = (val: string) => { + const change = !val.startsWith(state.lastVal) + setState({ + lastVal: val, + }) + if (change) return match(initialDocs, val, { keys: ['name'] }) + return match(docs, val, { keys: ['name'] }) + } const handleSearchDocs = (val: string) => { const isEmpty = val.length === 0