Page layout refactoring (#14535)

In this PR:
- Refactored the page layout renderer
- Converted all the states to component states
- Removed the page layout edition in settings

TODOs in next PRs:
- Fix bug with the drag selector not taking the scroll into account to
display the dragged area
- Readd the tab edition in edit mode
This commit is contained in:
Raphaël Bosi
2025-09-16 17:42:51 +02:00
committed by GitHub
parent e69131790c
commit 3b868c3d2a
90 changed files with 2070 additions and 1928 deletions
@@ -1,29 +0,0 @@
import { PageBody } from '@/ui/layout/page/components/PageBody';
import { PageContainer } from '@/ui/layout/page/components/PageContainer';
import { PageHeader } from '@/ui/layout/page/components/PageHeader';
import {
Breadcrumb,
type BreadcrumbProps,
} from '@/ui/navigation/bread-crumb/components/Breadcrumb';
import { type ReactNode } from 'react';
type SettingsPageFullWidthContainerProps = {
children: ReactNode;
links: BreadcrumbProps['links'];
actionButton?: ReactNode;
};
export const SettingsPageFullWidthContainer = ({
children,
links,
actionButton,
}: SettingsPageFullWidthContainerProps) => {
return (
<PageContainer>
<PageHeader title={<Breadcrumb links={links} />}>
{actionButton}
</PageHeader>
<PageBody>{children}</PageBody>
</PageContainer>
);
};
@@ -20,7 +20,6 @@ import {
IconFunction,
IconHierarchy2,
IconKey,
IconLayout,
IconLock,
IconMail,
IconRocket,
@@ -64,9 +63,6 @@ const useSettingsNavigationItems = (): SettingsNavigationSection[] => {
(currentUser?.canImpersonate || currentUser?.canAccessFullAdminPanel) ??
false;
const isAIEnabled = useIsFeatureEnabled(FeatureFlagKey.IS_AI_ENABLED);
const isPageLayoutEnabled = useIsFeatureEnabled(
FeatureFlagKey.IS_PAGE_LAYOUT_ENABLED,
);
const permissionMap = usePermissionFlagMap();
return [
@@ -144,15 +140,6 @@ const useSettingsNavigationItems = (): SettingsNavigationSection[] => {
isHidden:
!isBillingEnabled || !permissionMap[PermissionFlagType.WORKSPACE],
},
{
label: t`Page Layouts`,
path: SettingsPath.PageLayout,
Icon: IconLayout,
isHidden:
!isPageLayoutEnabled ||
!permissionMap[PermissionFlagType.WORKSPACE],
isNew: true,
},
{
label: t`APIs & Webhooks`,
path: SettingsPath.ApiWebhooks,