فهرست منبع

remove changeState

reiji-h 2 سال پیش
والد
کامیت
f95adaf223
1فایلهای تغییر یافته به همراه6 افزوده شده و 24 حذف شده
  1. 6 24
      apps/app/src/components/SearchPage.tsx

+ 6 - 24
apps/app/src/components/SearchPage.tsx

@@ -93,14 +93,13 @@ export const SearchPage = (): JSX.Element => {
   const { t } = useTranslation();
   const { t } = useTranslation();
   const { data: showPageLimitationL } = useShowPageLimitationL();
   const { data: showPageLimitationL } = useShowPageLimitationL();
   const router = useRouter();
   const router = useRouter();
+  const routerRef = useRef(router);
 
 
   // parse URL Query
   // parse URL Query
   const queries = router.query.q;
   const queries = router.query.q;
   const initQ = (Array.isArray(queries) ? queries.join(' ') : queries) ?? '';
   const initQ = (Array.isArray(queries) ? queries.join(' ') : queries) ?? '';
 
 
   const [keyword, setKeyword] = useState<string>(initQ);
   const [keyword, setKeyword] = useState<string>(initQ);
-  type changeStyle = 'search' | 'browser' | null;
-  const [changeState, setChangeState] = useState<changeStyle>(null);
   const [offset, setOffset] = useState<number>(0);
   const [offset, setOffset] = useState<number>(0);
   const [limit, setLimit] = useState<number>(showPageLimitationL ?? INITIAL_PAGIONG_SIZE);
   const [limit, setLimit] = useState<number>(showPageLimitationL ?? INITIAL_PAGIONG_SIZE);
   const [configurationsByControl, setConfigurationsByControl] = useState<Partial<ISearchConfigurations>>({});
   const [configurationsByControl, setConfigurationsByControl] = useState<Partial<ISearchConfigurations>>({});
@@ -179,37 +178,20 @@ export const SearchPage = (): JSX.Element => {
   useEffect(() => {
   useEffect(() => {
     const newUrl = new URL('/_search', 'http://example.com');
     const newUrl = new URL('/_search', 'http://example.com');
     newUrl.searchParams.append('q', keyword);
     newUrl.searchParams.append('q', keyword);
-    switch (changeState) {
-      case 'search': {
-        router.push(`${newUrl.pathname}${newUrl.search}`, '', { shallow: true });
-        break;
-      }
-      case 'browser': {
-        break;
-      }
-      default:
-        break;
-    }
-    setChangeState('search');
-  }, [keyword, setChangeState]);
+    routerRef.current.push(`${newUrl.pathname}${newUrl.search}`, '', { shallow: true });
+  }, [keyword, routerRef]);
 
 
   // browser back and forward
   // browser back and forward
   useEffect(() => {
   useEffect(() => {
-    router.beforePopState(({ url }) => {
-      setChangeState('browser');
-
+    routerRef.current.beforePopState(({ url }) => {
       const newUrl = new URL(url, 'https://exmple.com');
       const newUrl = new URL(url, 'https://exmple.com');
       const newKeyword = newUrl.searchParams.get('q');
       const newKeyword = newUrl.searchParams.get('q');
-      if (typeof newKeyword === 'string') {
+      if (newKeyword != null) {
         setKeyword(newKeyword);
         setKeyword(newKeyword);
       }
       }
-      else {
-        setChangeState('search');
-      }
-
       return true;
       return true;
     });
     });
-  }, [setChangeState, setKeyword]);
+  }, [setKeyword, routerRef]);
 
 
   const hitsCount = data?.meta.hitsCount;
   const hitsCount = data?.meta.hitsCount;