This repository has been archived on 2025-11-04. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
qoverflow/client/src/controllers/SearchBarController.js
2022-08-18 16:27:00 -04:00

33 lines
1,002 B
JavaScript

import { useState } from 'react';
import { createSearchParams, useLocation, useNavigate, useSearchParams } from 'react-router-dom';
import { SearchBar } from 'components';
export default function SearchBarController() {
const [, setSearchParams] = useSearchParams();
const location = useLocation();
const [search, setSearch] = useState('');
const navigate = useNavigate();
const onChange = (e) => setSearch(e.target.value);
const onSubmit = (e) => {
e.preventDefault();
if (location.pathname === '/questions/search') {
setSearchParams({ title: search }, { replace: true });
} else {
navigate({
pathname: '/questions/search',
search: `?${createSearchParams({
title: search,
})}`,
replace: true,
});
}
setSearch(() => '');
};
return <SearchBar value={search} onChange={onChange} onSubmit={onSubmit} />;
}