Archived
fix search for multi-letter prefixes
This commit is contained in:
@@ -14,27 +14,26 @@ export function Search(props: SearchProps) {
|
|||||||
() => props.providers()?.find((provider) => provider.default) ?? props.providers()?.[0]
|
() => props.providers()?.find((provider) => provider.default) ?? props.providers()?.[0]
|
||||||
);
|
);
|
||||||
|
|
||||||
const searchPerPrefix = createMemo(() =>
|
|
||||||
props.providers()?.reduce<Record<string, SearchProvider>>((acc, provider) => {
|
|
||||||
acc[provider.prefix] = provider;
|
|
||||||
return acc;
|
|
||||||
}, {})
|
|
||||||
);
|
|
||||||
|
|
||||||
const activeProvider = createMemo(() => {
|
const activeProvider = createMemo(() => {
|
||||||
if (term().startsWith('!') && searchPerPrefix()?.[term().charAt(1)]) {
|
if (!term().startsWith('!')) {
|
||||||
return searchPerPrefix()?.[term().charAt(1)];
|
|
||||||
} else {
|
|
||||||
return defaultProvider();
|
return defaultProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log({ term: term().slice(1) });
|
||||||
|
const prefix = term().slice(1);
|
||||||
|
const provider = props
|
||||||
|
.providers()
|
||||||
|
?.find((provider) => provider.prefix === prefix || provider.prefix === prefix.split(' ')[0]);
|
||||||
|
|
||||||
|
return provider || defaultProvider();
|
||||||
});
|
});
|
||||||
|
|
||||||
const searchTerm = createMemo(() => {
|
const searchTerm = createMemo(() => {
|
||||||
if (term().startsWith('!') && searchPerPrefix()?.[term().charAt(1)]) {
|
if (!term().startsWith('!')) {
|
||||||
return term().slice(2);
|
|
||||||
} else {
|
|
||||||
return term();
|
return term();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return term().split(`!${activeProvider()?.prefix} `)[1];
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user