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]
|
||||
);
|
||||
|
||||
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 (
|
||||
|
||||
Reference in New Issue
Block a user