Просмотр исходного кода

Allowing undefined type for searchKeyword in SearchModalStatus

maeshinshin 2 лет назад
Родитель
Сommit
ac25ccb871

+ 4 - 1
apps/app/src/features/search/client/components/SearchModal.tsx

@@ -49,7 +49,10 @@ const SearchModal = (): JSX.Element => {
   };
 
   useEffect(() => {
-    if (!searchModalData?.isOpened || typeof searchModalData?.searchKeyword === 'undefined') {
+    if (!searchModalData?.isOpened) {
+      return;
+    }
+    if (searchModalData?.searchKeyword == null) {
       setSearchKeyword('');
     }
     else {

+ 3 - 8
apps/app/src/features/search/client/stores/search.ts

@@ -4,7 +4,7 @@ import { useStaticSWR } from '~/stores/use-static-swr';
 
 type SearchModalStatus = {
   isOpened: boolean,
-  searchKeyword: string,
+  searchKeyword?: string,
 }
 
 type SearchModalUtils = {
@@ -12,18 +12,13 @@ type SearchModalUtils = {
   close(): void
 }
 export const useSearchModal = (status?: SearchModalStatus): SWRResponse<SearchModalStatus, Error> & SearchModalUtils => {
-  const initialStatus = { searchKeyword: '', isOpened: false };
+  const initialStatus = { isOpened: false };
   const swrResponse = useStaticSWR<SearchModalStatus, Error>('SearchModal', status, { fallbackData: initialStatus });
 
   return {
     ...swrResponse,
     open: (keywordOnInit?: string) => {
-      if (typeof keywordOnInit !== 'undefined') {
-        swrResponse.mutate({ isOpened: true, searchKeyword: keywordOnInit });
-      }
-      else {
-        swrResponse.mutate({ isOpened: true, searchKeyword: '' });
-      }
+      swrResponse.mutate({ isOpened: true, searchKeyword: keywordOnInit });
     },
     close: () => swrResponse.mutate({ isOpened: false, searchKeyword: '' }),
   };