Преглед изворни кода

refactor: simplify page context management and remove unused utility

Yuki Takei пре 7 месеци
родитељ
комит
702d527641

+ 2 - 0
apps/app/src/pages/[[...path]]/index.page.tsx

@@ -112,6 +112,8 @@ const Page: NextPageWithLayout<Props> = (props: Props) => {
   // Initialize redirectFrom atom values
   useEffect(() => {
     setRedirectFrom(props.redirectFrom ?? null);
+    // cleanup
+    return () => setRedirectFrom(null);
   }, [props.redirectFrom, setRedirectFrom]);
 
   // Optimized effects with minimal dependencies

+ 0 - 3
apps/app/src/pages/_app.page.tsx

@@ -21,7 +21,6 @@ import { swrGlobalConfiguration } from '~/utils/swr-utils';
 import { getLocaleAtServerSide } from './utils/locale';
 import { useNextjsRoutingPageRegister } from './utils/nextjs-routing-utils';
 import { registerTransformerForObjectId } from './utils/objectid-transformer';
-import { useResetPageContextsOnNextRouting } from './utils/reset-page-contexts';
 
 import '~/styles/prebuilt/vendor.css';
 import '~/styles/style-app.scss';
@@ -59,8 +58,6 @@ const GrowiAppSubstance = ({ Component, pageProps, userLocale }: GrowiAppProps):
 
   useNextjsRoutingPageRegister(pageProps.nextjsRoutingPage);
 
-  useResetPageContextsOnNextRouting();
-
   useEffect(() => {
     const updateLangAttribute = () => {
       if (document.documentElement.getAttribute('lang') !== userLocale) {

+ 3 - 7
apps/app/src/pages/_private-legacy-pages/index.page.tsx

@@ -43,13 +43,9 @@ const PrivateLegacyPage: NextPage<Props> = (props: Props) => {
 
   // Turn on search page flag
   useEffect(() => {
-    const turnOnSearchPage = () => {
-      setIsSearchPage(true);
-    };
-    router.events.on('routeChangeComplete', turnOnSearchPage);
-    return () => {
-      router.events.off('routeChangeComplete', turnOnSearchPage);
-    };
+    setIsSearchPage(true);
+    // cleanup
+    return () => setIsSearchPage(false);
   }, [router, setIsSearchPage]);
 
   const title = useCustomTitle(t('private_legacy_pages.title'));

+ 3 - 7
apps/app/src/pages/_search/index.page.tsx

@@ -44,13 +44,9 @@ const SearchResultPage: NextPageWithLayout<Props> = (props: Props) => {
 
   // Turn on search page flag
   useEffect(() => {
-    const turnOnSearchPage = () => {
-      setIsSearchPage(true);
-    };
-    router.events.on('routeChangeComplete', turnOnSearchPage);
-    return () => {
-      router.events.off('routeChangeComplete', turnOnSearchPage);
-    };
+    setIsSearchPage(true);
+    // cleanup
+    return () => setIsSearchPage(false);
   }, [router, setIsSearchPage]);
 
   const title = useCustomTitle(t('search_result.title'));

+ 0 - 25
apps/app/src/pages/utils/reset-page-contexts.ts

@@ -1,25 +0,0 @@
-import { useEffect } from 'react';
-
-import { useRouter } from 'next/router';
-
-import { useIsSearchPage, useIsSharedUser } from '~/states/context';
-import { useRedirectFrom } from '~/states/page/redirect';
-
-export const useResetPageContextsOnNextRouting = (): void => {
-  const router = useRouter();
-  const [, setRedirectFrom] = useRedirectFrom();
-  const [, setIsSharedUser] = useIsSharedUser();
-  const [, setIsSearchPage] = useIsSearchPage();
-
-  useEffect(() => {
-    const resetPageContexts = () => {
-      setRedirectFrom(null);
-      setIsSharedUser(false);
-      setIsSearchPage(false);
-    };
-    router.events.on('routeChangeStart', resetPageContexts);
-    return () => {
-      router.events.off('routeChangeStart', resetPageContexts);
-    };
-  }, [router, setIsSearchPage, setIsSharedUser, setRedirectFrom]);
-};