Skip to content

Instantly share code, notes, and snippets.

@ScreamZ
Created January 7, 2022 18:29
Show Gist options
  • Save ScreamZ/a2f2c77d40a3824c51502061b7488ab2 to your computer and use it in GitHub Desktop.
Save ScreamZ/a2f2c77d40a3824c51502061b7488ab2 to your computer and use it in GitHub Desktop.
import type { CodingSparkPageLayoutProps } from "modules/nextjs";
import dynamic from "next/dynamic";
const NotAuthenticatedLayout = dynamic(() => import("modules/ui/layouts/NotAuthenticatedLayout"));
const OnboardingLayout = dynamic(() => import("modules/ui/layouts/OnboardingLayout"));
export const LayoutFactory: React.FC<{ layout: CodingSparkPageLayoutProps["layout"] }> = ({
layout = { type: "none" },
children,
}) => {
switch (layout.type) {
case "not_authenticated":
return <NotAuthenticatedLayout>{children}</NotAuthenticatedLayout>;
case "onboarding":
return <OnboardingLayout>{children}</OnboardingLayout>;
default:
return <>{children}</>;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment