@@ -8,6 +8,7 @@ import type {
88import {
99 isIPageInfoForEntity , isIPageInfoForOperation ,
1010} from '@growi/core' ;
11+ import { pagePathUtils } from '@growi/core/dist/utils' ;
1112import { useRect } from '@growi/ui/dist/utils' ;
1213import { useTranslation } from 'next-i18next' ;
1314import { DropdownItem } from 'reactstrap' ;
@@ -17,7 +18,9 @@ import {
1718} from '~/client/services/page-operation' ;
1819import { toastError } from '~/client/util/toastr' ;
1920import OpenDefaultAiAssistantButton from '~/features/openai/client/components/AiAssistant/OpenDefaultAiAssistantButton' ;
20- import { useIsGuestUser , useIsReadOnlyUser , useIsSearchPage } from '~/stores-universal/context' ;
21+ import {
22+ useIsGuestUser , useIsReadOnlyUser , useIsSearchPage , useIsUsersHomepageDeletionEnabled ,
23+ } from '~/stores-universal/context' ;
2124import {
2225 EditorMode , useEditorMode ,
2326} from '~/stores-universal/ui' ;
@@ -27,7 +30,7 @@ import {
2730} from '~/stores/ui' ;
2831import loggerFactory from '~/utils/logger' ;
2932
30- import { useSWRxPageInfo , useSWRxTagsInfo } from '../../../stores/page' ;
33+ import { useSWRxPageInfo , useSWRxTagsInfo , useCurrentPagePath } from '../../../stores/page' ;
3134import { useSWRxUsersList } from '../../../stores/user' ;
3235import type { AdditionalMenuItemsRendererProps , ForceHideMenuItems } from '../Common/Dropdown/PageItemControl' ;
3336import {
@@ -134,6 +137,12 @@ const PageControlsSubstance = (props: PageControlsSubstanceProps): JSX.Element =
134137 const { data : editorMode } = useEditorMode ( ) ;
135138 const { data : isDeviceLargerThanMd } = useIsDeviceLargerThanMd ( ) ;
136139 const { data : isSearchPage } = useIsSearchPage ( ) ;
140+ const { data : isUsersHomepageDeletionEnabled } = useIsUsersHomepageDeletionEnabled ( ) ;
141+ const { data : currentPagePath } = useCurrentPagePath ( ) ;
142+
143+ const isUsersHomepage = pagePathUtils . isUsersHomepage ( currentPagePath ?? '' ) ;
144+ console . log ( isUsersHomepage ) ;
145+
137146
138147 const { mutate : mutatePageInfo } = useSWRxPageInfo ( pageId , shareLinkId ) ;
139148
@@ -280,6 +289,18 @@ const PageControlsSubstance = (props: PageControlsSubstanceProps): JSX.Element =
280289 const _isIPageInfoForOperation = isIPageInfoForOperation ( pageInfo ) ;
281290 const isViewMode = editorMode === EditorMode . View ;
282291
292+ const isEnableActions = ( ) => {
293+ if ( isGuestUser ) {
294+ return false ;
295+ }
296+
297+ if ( isUsersHomepage && ! isUsersHomepageDeletionEnabled ) {
298+ return false ;
299+ }
300+
301+ return true ;
302+ } ;
303+
283304 return (
284305 < div className = { `${ styles [ 'grw-page-controls' ] } hstack gap-2` } ref = { pageControlsRef } >
285306 { isViewMode && isDeviceLargerThanMd && ! isSearchPage && ! isSearchPage && (
@@ -332,7 +353,7 @@ const PageControlsSubstance = (props: PageControlsSubstanceProps): JSX.Element =
332353 < PageItemControl
333354 pageId = { pageId }
334355 pageInfo = { pageInfo }
335- isEnableActions = { ! isGuestUser }
356+ isEnableActions = { isEnableActions ( ) }
336357 isReadOnlyUser = { ! ! isReadOnlyUser }
337358 forceHideMenuItems = { forceHideMenuItemsWithAdditions }
338359 additionalMenuItemOnTopRenderer = { ! isReadOnlyUser ? additionalMenuItemOnTopRenderer : undefined }
0 commit comments