mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { ChakraProvider } from '@chakra-ui/react';
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
import React from 'react';
|
|
|
|
import { AppContextProvider } from 'lib/appContext';
|
|
import type { Props as PageProps } from 'lib/next/getServerSideProps';
|
|
import { SocketProvider } from 'lib/socket/context';
|
|
import { PORT } from 'playwright/fixtures/socketServer';
|
|
import theme from 'theme';
|
|
|
|
type Props = {
|
|
children: React.ReactNode;
|
|
withSocket?: boolean;
|
|
appContext?: {
|
|
pageProps: PageProps;
|
|
};
|
|
}
|
|
|
|
const defaultAppContext = {
|
|
pageProps: {
|
|
cookies: '',
|
|
referrer: '',
|
|
},
|
|
};
|
|
|
|
const TestApp = ({ children, withSocket, appContext = defaultAppContext }: Props) => {
|
|
const [ queryClient ] = React.useState(() => new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
refetchOnWindowFocus: false,
|
|
retry: 0,
|
|
},
|
|
},
|
|
}));
|
|
|
|
return (
|
|
<ChakraProvider theme={ theme }>
|
|
<QueryClientProvider client={ queryClient }>
|
|
<SocketProvider url={ withSocket ? `ws://localhost:${ PORT }` : undefined }>
|
|
<AppContextProvider { ...appContext }>
|
|
{ children }
|
|
</AppContextProvider>
|
|
</SocketProvider>
|
|
</QueryClientProvider>
|
|
</ChakraProvider>
|
|
);
|
|
};
|
|
|
|
export default TestApp;
|