import { FC, PropsWithChildren, ReactNode } from 'react'; import { DynamicLayoutProps } from '@/types/next'; import { RouteVariants } from '@/utils/server/routeVariants'; interface ServerLayoutProps { Desktop: FC; Mobile: FC; } interface ServerLayoutInnerProps extends DynamicLayoutProps { children: ReactNode; } const ServerLayout = ({ Desktop, Mobile }: ServerLayoutProps): FC => // @ts-expect-error async (props: ServerLayoutInnerProps) => { const { params: paramsPromise, ...res } = props; if (!paramsPromise) { throw new Error( `paramsPromise is required for ServerLayout, please pass params props to ServerLayout`, ); } const isMobile = await RouteVariants.getIsMobile(props); return isMobile ? : ; }; ServerLayout.displayName = 'ServerLayout'; export default ServerLayout;