- 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
46 lines
1.1 KiB
TypeScript
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>
|
|
</>
|
|
);
|
|
}
|