import { ReactElement, ReactNode } from "react"; import { NextPage } from "next"; import type { AppProps } from "next/app"; import { Montserrat, Qwigley } from "next/font/google"; import { SubscriptionProvider } from "@documenso/lib/stripe/providers/subscription-provider"; import "../../../node_modules/placeholder-loading/src/scss/placeholder-loading.scss"; import "../../../node_modules/react-resizable/css/styles.css"; import "../styles/tailwind.css"; import { SessionProvider } from "next-auth/react"; import { Toaster } from "react-hot-toast"; import "react-tooltip/dist/react-tooltip.css"; export { coloredConsole } from "@documenso/lib"; const montserrat = Montserrat({ subsets: ["latin"], weight: ["400", "700"], display: "swap", variable: "--font-sans", }); const qwigley = Qwigley({ subsets: ["latin"], weight: ["400"], display: "swap", variable: "--font-qwigley", }); export type NextPageWithLayout

= NextPage & { getLayout?: (page: ReactElement) => ReactNode; }; type AppPropsWithLayout = AppProps & { Component: NextPageWithLayout; }; export default function App({ Component, pageProps: { session, initialSubscription, ...pageProps }, }: AppPropsWithLayout) { const getLayout = Component.getLayout || ((page: any) => page); return (

{getLayout()}
); }