diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 05eadc54..a215afe6 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -19,6 +19,7 @@ import { APP_NAME, IPFS_GATEWAY } from "~/lib/env" import { toGateway } from "~/lib/ipfs-parser" import { createIDBPersister } from "~/lib/persister.client" import { urlComposer } from "~/lib/url-composer" +import { AppPropsWithLayout } from "types/next" Network.setIpfsGateway(IPFS_GATEWAY) @@ -34,8 +35,8 @@ const queryClient = new QueryClient({ const persister = createIDBPersister() -function MyApp({ Component, pageProps }: any) { - const getLayout = Component.getLayout ?? ((page: any) => page) +function MyApp({ Component, pageProps }: AppPropsWithLayout) { + const getLayout = Component.getLayout ?? ((page) => page) return ( diff --git a/types/next.ts b/types/next.ts new file mode 100644 index 00000000..36dec518 --- /dev/null +++ b/types/next.ts @@ -0,0 +1,17 @@ +import { DehydratedState } from "@tanstack/react-query" +import { NextPage } from "next" +import { AppProps } from "next/app" +import { ReactElement, ReactNode } from "react" + +export type AppPropsWithLayout = AppProps<{ + dehydratedState: DehydratedState +}> & { + Component: NextPageWithLayout +} + +export type NextPageWithLayout< + P = { dehydratedState: DehydratedState }, + IP = P, +> = NextPage & { + getLayout?: (page: ReactElement) => ReactNode +}