Files
myeasycms-v2/apps/web/components/cms-page-shell.tsx
Zaid Marzguioui f10a34c505
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 6m6s
Workflow / ⚫️ Test (push) Has been skipped
fix: comprehensive CMS QA fixes — i18n, UI labels, breadcrumbs
- Fix i18n dotted permission keys causing INVALID_KEY console spam (en/de cms.json)
- Fix member detail breadcrumb showing UUID instead of member name
- Fix bookings stats card showing 'of' instead of 'Total'
- Fix events/registrations table 'status' column header resolving to object
- Fix finance search placeholder showing 'Show All' instead of search text
- Fix finance status filter default showing 'No data' instead of 'All'
- Fix applications page German pluralization 'Antrage' → 'Anträge'
- Add breadcrumbValues prop to CmsPageShell for UUID→name overrides
2026-04-02 22:59:42 +02:00

46 lines
1.1 KiB
TypeScript

import type { ReactNode } from 'react';
import { AppBreadcrumbs } from '@kit/ui/app-breadcrumbs';
import { PageBody } from '@kit/ui/page';
import { TeamAccountLayoutPageHeader } from '~/home/[account]/_components/team-account-layout-page-header';
interface CmsPageShellProps {
account: string;
title: string;
description?: string;
/** Override breadcrumb labels for URL path segments (e.g. UUID → name) */
breadcrumbValues?: Record<string, string>;
children: ReactNode;
}
/**
* Shared CMS page shell — wraps PageBody + header + breadcrumbs.
* Use in every CMS feature page to maintain consistent layout.
*/
export function CmsPageShell({
account,
title,
description,
breadcrumbValues,
children,
}: CmsPageShellProps) {
return (
<>
<TeamAccountLayoutPageHeader
account={account}
title={title}
description={
description !== undefined ? (
description
) : (
<AppBreadcrumbs values={breadcrumbValues} />
)
}
/>
<PageBody>{children}</PageBody>
</>
);
}