|
@@ -37,10 +37,12 @@ type CommonProps = {
|
|
|
onClickDuplicateMenuItem?: (pageId: string) => Promise<void> | void,
|
|
onClickDuplicateMenuItem?: (pageId: string) => Promise<void> | void,
|
|
|
onClickDeleteMenuItem?: (pageId: string, pageInfo: IPageInfoAll | undefined) => Promise<void> | void,
|
|
onClickDeleteMenuItem?: (pageId: string, pageInfo: IPageInfoAll | undefined) => Promise<void> | void,
|
|
|
onClickRevertMenuItem?: (pageId: string) => Promise<void> | void,
|
|
onClickRevertMenuItem?: (pageId: string) => Promise<void> | void,
|
|
|
|
|
+ onClickSwitchContentWidthMenuItem?: (pageId: string, isContainerFluid?: boolean) => Promise<void>,
|
|
|
|
|
|
|
|
additionalMenuItemRenderer?: React.FunctionComponent<AdditionalMenuItemsRendererProps>,
|
|
additionalMenuItemRenderer?: React.FunctionComponent<AdditionalMenuItemsRendererProps>,
|
|
|
isInstantRename?: boolean,
|
|
isInstantRename?: boolean,
|
|
|
alignRight?: boolean,
|
|
alignRight?: boolean,
|
|
|
|
|
+ isContainerFluid?: boolean
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -55,10 +57,16 @@ const PageItemControlDropdownMenu = React.memo((props: DropdownMenuProps): JSX.E
|
|
|
const {
|
|
const {
|
|
|
pageId, isLoading,
|
|
pageId, isLoading,
|
|
|
pageInfo, isEnableActions, forceHideMenuItems,
|
|
pageInfo, isEnableActions, forceHideMenuItems,
|
|
|
- onClickBookmarkMenuItem, onClickRenameMenuItem, onClickDuplicateMenuItem, onClickDeleteMenuItem, onClickRevertMenuItem,
|
|
|
|
|
|
|
+ onClickBookmarkMenuItem, onClickRenameMenuItem, onClickDuplicateMenuItem, onClickDeleteMenuItem, onClickRevertMenuItem, onClickSwitchContentWidthMenuItem,
|
|
|
additionalMenuItemRenderer: AdditionalMenuItems, isInstantRename, alignRight,
|
|
additionalMenuItemRenderer: AdditionalMenuItems, isInstantRename, alignRight,
|
|
|
} = props;
|
|
} = props;
|
|
|
|
|
|
|
|
|
|
+ const switchContentWidthHandler = useCallback(async() => {
|
|
|
|
|
+ if (!isIPageInfoForOperation(pageInfo) || onClickSwitchContentWidthMenuItem == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ await onClickSwitchContentWidthMenuItem(pageId, pageInfo.isContainerFluid);
|
|
|
|
|
+ }, [onClickSwitchContentWidthMenuItem, pageId, pageInfo]);
|
|
|
|
|
|
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
|
const bookmarkItemClickedHandler = useCallback(async() => {
|
|
const bookmarkItemClickedHandler = useCallback(async() => {
|
|
@@ -132,6 +140,16 @@ const PageItemControlDropdownMenu = React.memo((props: DropdownMenuProps): JSX.E
|
|
|
</DropdownItem>
|
|
</DropdownItem>
|
|
|
) }
|
|
) }
|
|
|
|
|
|
|
|
|
|
+ { isEnableActions && !pageInfo.isEmpty && isIPageInfoForOperation(pageInfo) && (
|
|
|
|
|
+ <DropdownItem
|
|
|
|
|
+ onClick={switchContentWidthHandler}
|
|
|
|
|
+ className="grw-page-control-dropdown-item"
|
|
|
|
|
+ >
|
|
|
|
|
+ <i className="fa fa-fw fa-text-width grw-page-control-dropdown-icon"></i>
|
|
|
|
|
+ { !pageInfo.isContainerFluid ? t('Full Width') : t('Default Width') }
|
|
|
|
|
+ </DropdownItem>
|
|
|
|
|
+ ) }
|
|
|
|
|
+
|
|
|
{/* Bookmark */}
|
|
{/* Bookmark */}
|
|
|
{ !forceHideMenuItems?.includes(MenuItemType.BOOKMARK) && isEnableActions && !pageInfo.isEmpty && isIPageInfoForOperation(pageInfo) && (
|
|
{ !forceHideMenuItems?.includes(MenuItemType.BOOKMARK) && isEnableActions && !pageInfo.isEmpty && isIPageInfoForOperation(pageInfo) && (
|
|
|
<DropdownItem
|
|
<DropdownItem
|
|
@@ -224,7 +242,7 @@ export const PageItemControlSubstance = (props: PageItemControlSubstanceProps):
|
|
|
const {
|
|
const {
|
|
|
pageId, pageInfo: presetPageInfo, fetchOnInit,
|
|
pageId, pageInfo: presetPageInfo, fetchOnInit,
|
|
|
children,
|
|
children,
|
|
|
- onClickBookmarkMenuItem, onClickRenameMenuItem, onClickDuplicateMenuItem, onClickDeleteMenuItem,
|
|
|
|
|
|
|
+ onClickBookmarkMenuItem, onClickRenameMenuItem, onClickDuplicateMenuItem, onClickDeleteMenuItem, onClickSwitchContentWidthMenuItem,
|
|
|
} = props;
|
|
} = props;
|
|
|
|
|
|
|
|
const [isOpen, setIsOpen] = useState(false);
|
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -242,6 +260,16 @@ export const PageItemControlSubstance = (props: PageItemControlSubstanceProps):
|
|
|
}
|
|
}
|
|
|
}, [isOpen, presetPageInfo, shouldFetch]);
|
|
}, [isOpen, presetPageInfo, shouldFetch]);
|
|
|
|
|
|
|
|
|
|
+ const switchContentWidthMenuItemHandler = useCallback(async(_pageId: string, _isContainerFluid: boolean) => {
|
|
|
|
|
+ if (onClickSwitchContentWidthMenuItem != null) {
|
|
|
|
|
+ await onClickSwitchContentWidthMenuItem(_pageId, _isContainerFluid);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (shouldFetch) {
|
|
|
|
|
+ mutatePageInfo();
|
|
|
|
|
+ }
|
|
|
|
|
+ }, [mutatePageInfo, onClickSwitchContentWidthMenuItem, shouldFetch]);
|
|
|
|
|
+
|
|
|
// mutate after handle event
|
|
// mutate after handle event
|
|
|
const bookmarkMenuItemClickHandler = useCallback(async(_pageId: string, _newValue: boolean) => {
|
|
const bookmarkMenuItemClickHandler = useCallback(async(_pageId: string, _newValue: boolean) => {
|
|
|
if (onClickBookmarkMenuItem != null) {
|
|
if (onClickBookmarkMenuItem != null) {
|
|
@@ -292,6 +320,7 @@ export const PageItemControlSubstance = (props: PageItemControlSubstanceProps):
|
|
|
onClickRenameMenuItem={renameMenuItemClickHandler}
|
|
onClickRenameMenuItem={renameMenuItemClickHandler}
|
|
|
onClickDuplicateMenuItem={duplicateMenuItemClickHandler}
|
|
onClickDuplicateMenuItem={duplicateMenuItemClickHandler}
|
|
|
onClickDeleteMenuItem={deleteMenuItemClickHandler}
|
|
onClickDeleteMenuItem={deleteMenuItemClickHandler}
|
|
|
|
|
+ onClickSwitchContentWidthMenuItem={switchContentWidthMenuItemHandler}
|
|
|
/>
|
|
/>
|
|
|
</Dropdown>
|
|
</Dropdown>
|
|
|
);
|
|
);
|