import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import { AppProps } from 'next/app' import React from 'react' import matchPath from '~/core/utils/matchPath' import { globalRoutes } from '../routes' export const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 10000, }, }, }) function WrapperReactQuery(props: any) { const { children } = props return ( {children} ) } export const DefaultLayoutContext = React.createContext< { exact: boolean path: string layout: React.Component } & any >({ exact: undefined, path: undefined, layout: undefined, }) /** * * @param props * @returns */ function getSiteLayout(props: AppProps) { const { Component, pageProps, router } = props const { route } = router const routes: any[] = globalRoutes for (let i = 0; i < routes.length; i += 1) { const curRoute = routes[i] const { exact, path, layout: PageLayout, ...layoutProps } = curRoute const match = matchPath(route, { path, exact }) if (match) { return ( {PageLayout ? ( ) : ( )} ) } } return ( ) } export default getSiteLayout