|
|
@@ -16,7 +16,9 @@ import { SearchMethodMenuItem } from './SearchMethodMenuItem';
|
|
|
import { SearchResultMenuItem } from './SearchResultMenuItem';
|
|
|
|
|
|
const SearchModal = (): JSX.Element => {
|
|
|
+
|
|
|
const [searchKeyword, setSearchKeyword] = useState('');
|
|
|
+ const [isMenthionedToAi, setMenthionedToAi] = useState(false);
|
|
|
|
|
|
const { data: searchModalData, close: closeSearchModal } = useSearchModal();
|
|
|
|
|
|
@@ -32,7 +34,9 @@ const SearchModal = (): JSX.Element => {
|
|
|
}, [closeSearchModal, router]);
|
|
|
|
|
|
const submitHandler = useCallback(() => {
|
|
|
- router.push(`/_search?q=${searchKeyword}`);
|
|
|
+ const url = new URL('_search', 'http://example.com');
|
|
|
+ url.searchParams.set('q', searchKeyword);
|
|
|
+ router.push(url.pathname + url.search);
|
|
|
closeSearchModal();
|
|
|
}, [closeSearchModal, router, searchKeyword]);
|
|
|
|
|
|
@@ -60,6 +64,10 @@ const SearchModal = (): JSX.Element => {
|
|
|
}
|
|
|
}, [searchModalData?.isOpened, searchModalData?.searchKeyword]);
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
+ setMenthionedToAi(searchKeyword.includes('@ai'));
|
|
|
+ }, [searchKeyword]);
|
|
|
+
|
|
|
return (
|
|
|
<Modal size="lg" isOpen={searchModalData?.isOpened ?? false} toggle={closeSearchModal} data-testid="search-modal">
|
|
|
<ModalBody className="pb-2">
|
|
|
@@ -77,7 +85,9 @@ const SearchModal = (): JSX.Element => {
|
|
|
}) => (
|
|
|
<div {...getRootProps({}, { suppressRefError: true })}>
|
|
|
<div className="text-muted d-flex justify-content-center align-items-center p-1">
|
|
|
- <span className="material-symbols-outlined fs-4 me-3">search</span>
|
|
|
+ <span className={`material-symbols-outlined fs-4 me-3 ${isMenthionedToAi ? 'text-primary' : ''}`}>
|
|
|
+ {isMenthionedToAi ? 'psychology' : 'search'}
|
|
|
+ </span>
|
|
|
<SearchForm
|
|
|
searchKeyword={searchKeyword}
|
|
|
onChange={changeSearchTextHandler}
|