Przeglądaj źródła

update PageContentFooter props

jam411 3 lat temu
rodzic
commit
c192cd3828

+ 14 - 11
packages/app/src/components/PageContentFooter.tsx

@@ -1,27 +1,30 @@
-import React, { memo } from 'react';
+import React from 'react';
 
-import { IPage } 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 const PageContentFooter = (): JSX.Element => {
 
-export type PageContentFooterProps = {
-  page: IPage,
-}
+  const { data: currentPage } = useSWRxCurrentPage();
 
-export const PageContentFooter = memo((props: PageContentFooterProps): JSX.Element => {
-  const { page } = props;
+  if (currentPage == null) {
+    return <></>;
+  }
 
   const {
     creator, lastUpdateUser, createdAt, updatedAt,
-  } = page;
+  } = currentPage;
 
   return (
     <div className={`${styles['page-content-footer']} page-content-footer py-4 d-edit-none d-print-none}`}>
@@ -33,6 +36,6 @@ export const PageContentFooter = memo((props: PageContentFooterProps): JSX.Eleme
       </div>
     </div>
   );
-});
+};
 
 PageContentFooter.displayName = 'PageContentFooter';

+ 2 - 5
packages/app/src/components/SearchPage/SearchResultContent.tsx

@@ -25,13 +25,12 @@ import { AdditionalMenuItemsRendererProps, ForceHideMenuItems } from '../Common/
 import { GrowiSubNavigationProps } from '../Navbar/GrowiSubNavigation';
 import { SubNavButtonsProps } from '../Navbar/SubNavButtons';
 import { PageCommentProps } from '../PageComment';
-import { PageContentFooterProps } from '../PageContentFooter';
 
 const GrowiSubNavigation = dynamic<GrowiSubNavigationProps>(() => import('../Navbar/GrowiSubNavigation').then(mod => mod.GrowiSubNavigation), { ssr: false });
 const SubNavButtons = dynamic<SubNavButtonsProps>(() => import('../Navbar/SubNavButtons').then(mod => mod.SubNavButtons), { ssr: false });
 const RevisionLoader = dynamic(() => import('../Page/RevisionLoader'), { ssr: false });
 const PageComment = dynamic<PageCommentProps>(() => import('../PageComment').then(mod => mod.PageComment), { ssr: false });
-const PageContentFooter = dynamic<PageContentFooterProps>(() => import('../PageContentFooter').then(mod => mod.PageContentFooter), { ssr: false });
+const PageContentFooter = dynamic(() => import('../PageContentFooter').then(mod => mod.PageContentFooter), { ssr: false });
 
 type AdditionalMenuItemsProps = AdditionalMenuItemsRendererProps & {
   pageId: string,
@@ -224,9 +223,7 @@ export const SearchResultContent: FC<Props> = (props: Props) => {
           isReadOnly
           hideIfEmpty
         />
-        <PageContentFooter
-          page={page}
-        />
+        <PageContentFooter />
       </div>
     </div>
   );

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

@@ -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} />
+              <PageContentFooter />
             </footer>
           )}