|
@@ -8,6 +8,7 @@ import type {
|
|
|
import {
|
|
import {
|
|
|
isIPageInfoForEntity, isIPageInfoForOperation,
|
|
isIPageInfoForEntity, isIPageInfoForOperation,
|
|
|
} from '@growi/core';
|
|
} from '@growi/core';
|
|
|
|
|
+import { pagePathUtils } from '@growi/core/dist/utils';
|
|
|
import { useRect } from '@growi/ui/dist/utils';
|
|
import { useRect } from '@growi/ui/dist/utils';
|
|
|
import { useTranslation } from 'next-i18next';
|
|
import { useTranslation } from 'next-i18next';
|
|
|
import { DropdownItem } from 'reactstrap';
|
|
import { DropdownItem } from 'reactstrap';
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
} from '~/stores/ui';
|
|
} from '~/stores/ui';
|
|
|
import loggerFactory from '~/utils/logger';
|
|
import loggerFactory from '~/utils/logger';
|
|
|
|
|
|
|
|
-import { useSWRxPageInfo, useSWRxTagsInfo } from '../../../stores/page';
|
|
|
|
|
|
|
+import { useSWRxPageInfo, useSWRxTagsInfo, useCurrentPagePath } from '../../../stores/page';
|
|
|
import { useSWRxUsersList } from '../../../stores/user';
|
|
import { useSWRxUsersList } from '../../../stores/user';
|
|
|
import type { AdditionalMenuItemsRendererProps, ForceHideMenuItems } from '../Common/Dropdown/PageItemControl';
|
|
import type { AdditionalMenuItemsRendererProps, ForceHideMenuItems } from '../Common/Dropdown/PageItemControl';
|
|
|
import {
|
|
import {
|
|
@@ -137,6 +138,11 @@ const PageControlsSubstance = (props: PageControlsSubstanceProps): JSX.Element =
|
|
|
const { data: isDeviceLargerThanMd } = useIsDeviceLargerThanMd();
|
|
const { data: isDeviceLargerThanMd } = useIsDeviceLargerThanMd();
|
|
|
const { data: isSearchPage } = useIsSearchPage();
|
|
const { data: isSearchPage } = useIsSearchPage();
|
|
|
const { data: isUsersHomepageDeletionEnabled } = useIsUsersHomepageDeletionEnabled();
|
|
const { data: isUsersHomepageDeletionEnabled } = useIsUsersHomepageDeletionEnabled();
|
|
|
|
|
+ const { data: currentPagePath } = useCurrentPagePath();
|
|
|
|
|
+
|
|
|
|
|
+ const isUsersHomepage = pagePathUtils.isUsersHomepage(currentPagePath ?? '');
|
|
|
|
|
+ console.log(isUsersHomepage);
|
|
|
|
|
+
|
|
|
|
|
|
|
|
const { mutate: mutatePageInfo } = useSWRxPageInfo(pageId, shareLinkId);
|
|
const { mutate: mutatePageInfo } = useSWRxPageInfo(pageId, shareLinkId);
|
|
|
|
|
|
|
@@ -283,6 +289,18 @@ const PageControlsSubstance = (props: PageControlsSubstanceProps): JSX.Element =
|
|
|
const _isIPageInfoForOperation = isIPageInfoForOperation(pageInfo);
|
|
const _isIPageInfoForOperation = isIPageInfoForOperation(pageInfo);
|
|
|
const isViewMode = editorMode === EditorMode.View;
|
|
const isViewMode = editorMode === EditorMode.View;
|
|
|
|
|
|
|
|
|
|
+ const isEnableActions = () => {
|
|
|
|
|
+ if (isGuestUser) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (isUsersHomepage && !isUsersHomepageDeletionEnabled) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return true;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
return (
|
|
return (
|
|
|
<div className={`${styles['grw-page-controls']} hstack gap-2`} ref={pageControlsRef}>
|
|
<div className={`${styles['grw-page-controls']} hstack gap-2`} ref={pageControlsRef}>
|
|
|
{ isViewMode && isDeviceLargerThanMd && !isSearchPage && !isSearchPage && (
|
|
{ isViewMode && isDeviceLargerThanMd && !isSearchPage && !isSearchPage && (
|
|
@@ -335,7 +353,7 @@ const PageControlsSubstance = (props: PageControlsSubstanceProps): JSX.Element =
|
|
|
<PageItemControl
|
|
<PageItemControl
|
|
|
pageId={pageId}
|
|
pageId={pageId}
|
|
|
pageInfo={pageInfo}
|
|
pageInfo={pageInfo}
|
|
|
- isEnableActions={!isGuestUser && isUsersHomepageDeletionEnabled}
|
|
|
|
|
|
|
+ isEnableActions={isEnableActions()}
|
|
|
isReadOnlyUser={!!isReadOnlyUser}
|
|
isReadOnlyUser={!!isReadOnlyUser}
|
|
|
forceHideMenuItems={forceHideMenuItemsWithAdditions}
|
|
forceHideMenuItems={forceHideMenuItemsWithAdditions}
|
|
|
additionalMenuItemOnTopRenderer={!isReadOnlyUser ? additionalMenuItemOnTopRenderer : undefined}
|
|
additionalMenuItemOnTopRenderer={!isReadOnlyUser ? additionalMenuItemOnTopRenderer : undefined}
|