Explorar o código

feat: integrate disableUserPages functionality in PersonalDropdown component

Shun Miyazawa hai 2 meses
pai
achega
b543cc48b3

+ 20 - 12
apps/app/src/client/components/Sidebar/SidebarNav/PersonalDropdown.tsx

@@ -2,6 +2,7 @@ import type { JSX } from 'react';
 import Link from 'next/link';
 import Link from 'next/link';
 import { pagePathUtils } from '@growi/core/dist/utils';
 import { pagePathUtils } from '@growi/core/dist/utils';
 import { UserPicture } from '@growi/ui/dist/components';
 import { UserPicture } from '@growi/ui/dist/components';
+import { useAtomValue } from 'jotai';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import {
 import {
   DropdownItem,
   DropdownItem,
@@ -13,6 +14,7 @@ import {
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { toastError } from '~/client/util/toastr';
 import { toastError } from '~/client/util/toastr';
 import { useCurrentUser } from '~/states/global';
 import { useCurrentUser } from '~/states/global';
+import { disableUserPagesAtom } from '~/states/server-configurations';
 
 
 import { SkeletonItem } from './SkeletonItem';
 import { SkeletonItem } from './SkeletonItem';
 
 
@@ -22,6 +24,8 @@ export const PersonalDropdown = (): JSX.Element => {
   const { t } = useTranslation('commons');
   const { t } = useTranslation('commons');
   const currentUser = useCurrentUser();
   const currentUser = useCurrentUser();
 
 
+  const disableUserPages = useAtomValue(disableUserPagesAtom);
+
   if (currentUser == null) {
   if (currentUser == null) {
     return <SkeletonItem />;
     return <SkeletonItem />;
   }
   }
@@ -70,19 +74,23 @@ export const PersonalDropdown = (): JSX.Element => {
 
 
         <DropdownItem className="my-3" divider />
         <DropdownItem className="my-3" divider />
 
 
-        <Link
-          href={pagePathUtils.userHomepagePath(currentUser)}
-          data-testid="grw-personal-dropdown-menu-user-home"
-        >
-          <DropdownItem className={`my-1 ${styles['personal-dropdown-item']}`}>
-            <span className="d-flex align-items-center">
-              <span className="item-icon material-symbols-outlined me-2 pb-0 fs-6">
-                home
+        {!disableUserPages && (
+          <Link
+            href={pagePathUtils.userHomepagePath(currentUser)}
+            data-testid="grw-personal-dropdown-menu-user-home"
+          >
+            <DropdownItem
+              className={`my-1 ${styles['personal-dropdown-item']}`}
+            >
+              <span className="d-flex align-items-center">
+                <span className="item-icon material-symbols-outlined me-2 pb-0 fs-6">
+                  home
+                </span>
+                <span className="item-text">{t('personal_dropdown.home')}</span>
               </span>
               </span>
-              <span className="item-text">{t('personal_dropdown.home')}</span>
-            </span>
-          </DropdownItem>
-        </Link>
+            </DropdownItem>
+          </Link>
+        )}
 
 
         <Link href="/me" data-testid="grw-personal-dropdown-menu-user-settings">
         <Link href="/me" data-testid="grw-personal-dropdown-menu-user-settings">
           <DropdownItem className={`my-1 ${styles['personal-dropdown-item']}`}>
           <DropdownItem className={`my-1 ${styles['personal-dropdown-item']}`}>