layout.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import { useIsContainerFluid, useShareLinkId } from '~/stores/context';
  2. import { useSWRxCurrentPage } from '~/stores/page';
  3. import { useEditorMode } from '~/stores/ui';
  4. export const useEditorModeClassName = (): string => {
  5. const { getClassNamesByEditorMode } = useEditorMode();
  6. // TODO: Enable `editing-sidebar` class somehow
  7. // https://redmine.weseek.co.jp/issues/111527
  8. // const classNames: string[] = [];
  9. // if (currentPage != null) {
  10. // const isSidebar = currentPage.path === '/Sidebar';
  11. // classNames.push(...getClassNamesByEditorMode(/* isSidebar */));
  12. // }
  13. return `${getClassNamesByEditorMode().join(' ') ?? ''}`;
  14. };
  15. export const useCurrentGrowiLayoutFluidClassName = (): string => {
  16. const { data: shareLinkId } = useShareLinkId();
  17. const { data: currentPage } = useSWRxCurrentPage(shareLinkId ?? undefined);
  18. const { data: dataIsContainerFluid } = useIsContainerFluid();
  19. const isContainerFluidEachPage = currentPage == null || !('expandContentWidth' in currentPage)
  20. ? null
  21. : currentPage.expandContentWidth;
  22. const isContainerFluidDefault = dataIsContainerFluid;
  23. const isContainerFluid = isContainerFluidEachPage ?? isContainerFluidDefault;
  24. return isContainerFluid ? 'growi-layout-fluid' : '';
  25. };