Browse Source

When readOnlyUser, use NotAvailableForReadOnlyUser.

Shun Miyazawa 1 năm trước cách đây
mục cha
commit
679268b527
1 tập tin đã thay đổi với 20 bổ sung2 xóa
  1. 20 2
      apps/app/src/components/Sidebar/SidebarNav/SidebarNav.tsx

+ 20 - 2
apps/app/src/components/Sidebar/SidebarNav/SidebarNav.tsx

@@ -1,8 +1,9 @@
-import React, { memo } from 'react';
+import React, { memo, useMemo } from 'react';
 
 import type { SidebarContentsType } from '~/interfaces/ui';
 import { useIsGuestUser, useIsReadOnlyUser } from '~/stores/context';
 
+import { NotAvailableForReadOnlyUser } from '../../NotAvailableForReadOnlyUser';
 import { PageCreateButton } from '../PageCreateButton';
 
 import { PrimaryItems } from './PrimaryItems';
@@ -20,9 +21,26 @@ export const SidebarNav = memo((props: SidebarNavProps) => {
   const { data: isGuestUser } = useIsGuestUser();
   const { data: isReadOnlyUser } = useIsReadOnlyUser();
 
+  const renderedPageCreateButton = useMemo(() => {
+    if (isGuestUser) {
+      return <></>;
+    }
+
+    if (isReadOnlyUser) {
+      return (
+        <NotAvailableForReadOnlyUser>
+          <PageCreateButton />
+        </NotAvailableForReadOnlyUser>
+      );
+    }
+
+    return <PageCreateButton />;
+  }, [isGuestUser, isReadOnlyUser]);
+
   return (
     <div className={`grw-sidebar-nav ${styles['grw-sidebar-nav']}`}>
-      {!(isGuestUser || isReadOnlyUser) && <PageCreateButton />}
+
+      {renderedPageCreateButton}
 
       <div className="grw-sidebar-nav-primary-container" data-vrt-blackout-sidebar-nav>
         <PrimaryItems onItemHover={onPrimaryItemHover} />