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

disable sidebar button for guest

Yuken Tezuka 3 лет назад
Родитель
Сommit
753db15a3f

+ 8 - 2
packages/app/src/components/Common/Dropdown/PageItemControl.tsx

@@ -9,6 +9,7 @@ import {
   IPageInfoAll, isIPageInfoForOperation,
 } from '~/interfaces/page';
 import { IPageOperationProcessData } from '~/interfaces/page-operation';
+import { useIsGuestUser } from '~/stores/context';
 import { useSWRxPageInfo } from '~/stores/page';
 import loggerFactory from '~/utils/logger';
 import { shouldRecoverPagePaths } from '~/utils/page-operation';
@@ -278,6 +279,8 @@ export const PageItemControlSubstance = (props: PageItemControlSubstanceProps):
 
   const { data: fetchedPageInfo, mutate: mutatePageInfo } = useSWRxPageInfo(shouldFetch ? pageId : null);
 
+  const { data: isGuest } = useIsGuestUser();
+
   // update shouldFetch (and will never be false)
   useEffect(() => {
     if (shouldFetch) {
@@ -330,9 +333,12 @@ export const PageItemControlSubstance = (props: PageItemControlSubstanceProps):
   }, [onClickPathRecoveryMenuItem, pageId]);
 
   return (
-    <Dropdown isOpen={isOpen} toggle={() => setIsOpen(!isOpen)} data-testid="open-page-item-control-btn">
+    <Dropdown disabled={isGuest} isOpen={isOpen} toggle={() => setIsOpen(!isOpen)} data-testid="open-page-item-control-btn">
       { children ?? (
-        <DropdownToggle color="transparent" className="border-0 rounded btn-page-item-control d-flex align-items-center justify-content-center">
+        <DropdownToggle
+          color="transparent"
+          className="border-0 rounded btn-page-item-control d-flex align-items-center justify-content-center"
+        >
           <i className="icon-options"></i>
         </DropdownToggle>
       ) }

+ 3 - 0
packages/app/src/components/Sidebar/PageTree/Item.tsx

@@ -18,6 +18,7 @@ import NotAvailableForGuest from '~/components/NotAvailableForGuest';
 import {
   IPageHasId, IPageInfoAll, IPageToDeleteWithMeta,
 } from '~/interfaces/page';
+import { useIsGuestUser } from '~/stores/context';
 import { IPageForPageDuplicateModal } from '~/stores/modal';
 import { useSWRxPageChildren } from '~/stores/page-listing';
 import { usePageTreeDescCountMap } from '~/stores/ui';
@@ -122,6 +123,7 @@ const Item: FC<ItemProps> = (props: ItemProps) => {
   const [isCreating, setCreating] = useState(false);
 
   const { data, mutate: mutateChildren } = useSWRxPageChildren(isOpen ? page._id : null);
+  const { data: isGuest } = useIsGuestUser();
 
   // descendantCount
   const { getDescCount } = usePageTreeDescCountMap();
@@ -507,6 +509,7 @@ const Item: FC<ItemProps> = (props: ItemProps) => {
         {!pagePathUtils.isUsersTopPage(page.path ?? '') && (
           <NotAvailableForGuest>
             <button
+              disabled={isGuest}
               id='page-create-button-in-page-tree'
               type="button"
               className="border-0 rounded btn btn-page-item-control p-0 grw-visible-on-hover"