in website/src/components/gallery/ShowcaseTemplateSearch/index.tsx [43:107]
function FilterBar(): React.JSX.Element {
const history = useHistory();
const location = useLocation();
const [value, setValue] = useState<string | null>(null);
useEffect(() => {
setValue(readSearchName(location.search));
}, [location]);
InputValue = value;
return (
<>
<SearchBox
styles={{
root: {
border: "1px solid #D1D1D1",
height: "52px",
maxWidth: "740px",
borderRadius: "4px",
},
icon: {
fontSize: "24px",
paddingLeft: "10px",
},
field: {
paddingLeft: "20px",
fontSize: "18px",
},
}}
id="filterBar"
value={readSearchName(location.search) != null ? value : ""}
placeholder="Search for an azd template..."
role="search"
onClear={(e) => {
setValue(null);
const newSearch = new URLSearchParams(location.search);
newSearch.delete(SearchNameQueryKey);
history.push({
...location,
search: newSearch.toString(),
state: prepareUserState(),
});
}}
onChange={(e) => {
if (!e) {
return;
}
setValue(e.currentTarget.value);
const newSearch = new URLSearchParams(location.search);
newSearch.delete(SearchNameQueryKey);
if (e.currentTarget.value) {
newSearch.set(SearchNameQueryKey, e.currentTarget.value);
}
history.push({
...location,
search: newSearch.toString(),
state: prepareUserState(),
});
setTimeout(() => {
document.getElementById("searchbar")?.focus();
}, 0);
}}
/>
</>
);
}