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

Merge pull request #6566 from weseek/imprv/update-PageContentFooter-reflected-data

imprv: Update PageContentFooter for present updated data
ryoji-s 3 лет назад
Родитель
Сommit
7bac82f66f

+ 19 - 8
packages/app/src/components/PageContentFooter.tsx

@@ -1,22 +1,25 @@
-import React, { memo } from 'react';
+import React from 'react';
 
-import { IPage } from '@growi/core';
+import { IPage, IUser } from '@growi/core';
 import dynamic from 'next/dynamic';
 
-import { IUser } from '~/interfaces/user';
+import { useSWRxCurrentPage } from '~/stores/page';
 
 import { Skelton } from './Skelton';
 
 import styles from './PageContentFooter.module.scss';
 
-const AuthorInfo = dynamic(() => import('./Navbar/AuthorInfo'),
-  { ssr: false, loading: () => <Skelton additionalClass={`${styles['page-content-footer-skelton']} mb-3`} /> });
+const AuthorInfo = dynamic(() => import('./Navbar/AuthorInfo'), {
+  ssr: false,
+  loading: () => <Skelton additionalClass={`${styles['page-content-footer-skelton']} mb-3`} />,
+});
 
 export type PageContentFooterProps = {
   page: IPage,
 }
 
-export const PageContentFooter = memo((props: PageContentFooterProps): JSX.Element => {
+export const PageContentFooter = (props: PageContentFooterProps): JSX.Element => {
+
   const { page } = props;
 
   const {
@@ -33,6 +36,14 @@ export const PageContentFooter = memo((props: PageContentFooterProps): JSX.Eleme
       </div>
     </div>
   );
-});
+};
+
+export const CurrentPageContentFooter = (): JSX.Element => {
+  const { data: currentPage } = useSWRxCurrentPage();
+
+  if (currentPage == null) {
+    return <></>;
+  }
 
-PageContentFooter.displayName = 'PageContentFooter';
+  return <PageContentFooter page={currentPage} />;
+};

+ 2 - 2
packages/app/src/pages/[[...path]].page.tsx

@@ -20,7 +20,7 @@ import superjson from 'superjson';
 import { Comments } from '~/components/Comments';
 import { PageAlerts } from '~/components/PageAlert/PageAlerts';
 // import { useTranslation } from '~/i18n';
-import { PageContentFooter } from '~/components/PageContentFooter';
+import { CurrentPageContentFooter } from '~/components/PageContentFooter';
 import { UsersHomePageFooterProps } from '~/components/UsersHomePageFooter';
 import { CrowiRequest } from '~/interfaces/crowi-request';
 // import { renderScriptTagByName, renderHighlightJsStyleTag } from '~/service/cdn-resources-loader';
@@ -331,7 +331,7 @@ const GrowiPage: NextPage<Props> = (props: Props) => {
               { (pageWithMeta != null && isUsersHomePage(pageWithMeta.data.path)) && (
                 <UsersHomePageFooter creatorId={pageWithMeta.data.creator._id}/>
               ) }
-              <PageContentFooter page={pageWithMeta?.data} />
+              <CurrentPageContentFooter />
             </footer>
           )}