1
0
Fork 0
mirror of https://github.com/pawelmalak/flame.git synced 2025-08-03 18:05:18 +02:00

Search bar bug fixes

This commit is contained in:
Paweł Malak 2021-10-13 13:31:01 +02:00
parent 6f44200a3c
commit e5cba605fa
4 changed files with 38 additions and 19 deletions

View file

@ -27,6 +27,11 @@ const SearchBar = (props: ComponentProps): JSX.Element => {
inputRef.current.focus();
}, []);
const clearSearch = () => {
inputRef.current.value = '';
setLocalSearch('');
};
const searchHandler = (e: KeyboardEvent<HTMLInputElement>) => {
const { isLocal, search, query, isURL, sameTab } = searchParser(
inputRef.current.value
@ -36,31 +41,39 @@ const SearchBar = (props: ComponentProps): JSX.Element => {
setLocalSearch(search);
}
if (e.code === 'Enter') {
if (e.code === 'Enter' || e.code === 'NumpadEnter') {
if (!query.prefix) {
// Prefix not found -> emit notification
createNotification({
title: 'Error',
message: 'Prefix not found',
});
} else if (isURL) {
// URL or IP passed -> redirect
const url = urlParser(inputRef.current.value)[1];
redirectUrl(url, sameTab);
} else if (isLocal) {
// Local query -> filter apps and bookmarks
setLocalSearch(search);
} else {
// Valid query -> redirect to search results
const url = `${query.template}${search}`;
redirectUrl(url, sameTab);
}
} else if (e.code === 'Escape') {
clearSearch();
}
};
return (
<input
ref={inputRef}
type="text"
className={classes.SearchBar}
onKeyUp={(e) => searchHandler(e)}
/>
<div className={classes.SearchContainer}>
<input
ref={inputRef}
type="text"
className={classes.SearchBar}
onKeyUp={(e) => searchHandler(e)}
/>
</div>
);
};