fix search for multi-letter prefixes

This commit is contained in:
Georgi Gardev
2023-11-18 22:53:10 +02:00
parent ba65f63459
commit 02d334ee37
+12 -13
View File
@@ -14,27 +14,26 @@ export function Search(props: SearchProps) {
() => 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(() => {
if (term().startsWith('!') && searchPerPrefix()?.[term().charAt(1)]) {
return searchPerPrefix()?.[term().charAt(1)];
} else {
if (!term().startsWith('!')) {
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(() => {
if (term().startsWith('!') && searchPerPrefix()?.[term().charAt(1)]) {
return term().slice(2);
} else {
if (!term().startsWith('!')) {
return term();
}
return term().split(`!${activeProvider()?.prefix} `)[1];
});
return (