import { SiteShell } from '@frontend/components/layout/SiteShell';
import { type ComponentType, type ReactNode } from 'react';

export type FrontendPageComponent = ComponentType & {
    layout?: (props: { children: ReactNode }) => React.JSX.Element;
};

export function frontendPersistentLayout({ children }: { children: ReactNode }): React.JSX.Element {
    return <SiteShell>{children}</SiteShell>;
}

export function applyDefaultFrontendLayout(page: { default: FrontendPageComponent }): void {
    if (page.default.layout === undefined) {
        page.default.layout = frontendPersistentLayout;
    }
}
