diff --git a/src/integrations/tanstack-query/context.tsx b/src/integrations/tanstack-query/context.tsx new file mode 100644 index 0000000..f9eb8fe --- /dev/null +++ b/src/integrations/tanstack-query/context.tsx @@ -0,0 +1,8 @@ +import { QueryClient } from '@tanstack/react-query' + +export function getContext() { + const queryClient = new QueryClient() + return { + queryClient, + } +} diff --git a/src/integrations/tanstack-query/devtools.tsx b/src/integrations/tanstack-query/devtools.tsx new file mode 100644 index 0000000..a377fe0 --- /dev/null +++ b/src/integrations/tanstack-query/devtools.tsx @@ -0,0 +1,7 @@ +import type { TanStackDevtoolsReactPlugin } from '@tanstack/react-devtools' +import { ReactQueryDevtoolsPanel } from '@tanstack/react-query-devtools' + +export const devtools = { + name: 'TanStack Query', + render: , +} satisfies TanStackDevtoolsReactPlugin diff --git a/src/integrations/tanstack-query/index.ts b/src/integrations/tanstack-query/index.ts new file mode 100644 index 0000000..7dcb09e --- /dev/null +++ b/src/integrations/tanstack-query/index.ts @@ -0,0 +1,2 @@ +export * from './context' +export * from './devtools' diff --git a/src/integrations/tanstack-router/devtools.tsx b/src/integrations/tanstack-router/devtools.tsx new file mode 100644 index 0000000..47d8af5 --- /dev/null +++ b/src/integrations/tanstack-router/devtools.tsx @@ -0,0 +1,7 @@ +import type { TanStackDevtoolsReactPlugin } from '@tanstack/react-devtools' +import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools' + +export const devtools = { + name: 'TanStack Router', + render: , +} satisfies TanStackDevtoolsReactPlugin diff --git a/src/integrations/tanstack-router/index.ts b/src/integrations/tanstack-router/index.ts new file mode 100644 index 0000000..39356ff --- /dev/null +++ b/src/integrations/tanstack-router/index.ts @@ -0,0 +1 @@ +export * from './devtools' diff --git a/src/router.tsx b/src/router.tsx index eb5a6f4..85f04ea 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,15 +1,15 @@ -import { QueryClient } from '@tanstack/react-query' import { createRouter } from '@tanstack/react-router' import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query' +import { getContext as getQueryContext } from './integrations/tanstack-query' import { routeTree } from './routeTree.gen' export const getRouter = () => { - const queryClient = new QueryClient() + const queryContext = getQueryContext() const router = createRouter({ routeTree, context: { - queryClient, + ...queryContext, }, scrollRestoration: true, @@ -18,7 +18,7 @@ export const getRouter = () => { setupRouterSsrQueryIntegration({ router, - queryClient, + queryClient: queryContext.queryClient, }) return router diff --git a/src/routes/__root.tsx b/src/routes/__root.tsx index 5fed3f6..f3b1d0c 100644 --- a/src/routes/__root.tsx +++ b/src/routes/__root.tsx @@ -1,8 +1,8 @@ import { TanStackDevtools } from '@tanstack/react-devtools' -import { ReactQueryDevtoolsPanel } from '@tanstack/react-query-devtools' import { createRootRoute, HeadContent, Scripts } from '@tanstack/react-router' -import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools' import type { ReactNode } from 'react' +import { devtools as queryDevtools } from '@/integrations/tanstack-query' +import { devtools as routerDevtools } from '@/integrations/tanstack-router' import appCss from '@/styles.css?url' export const Route = createRootRoute({ @@ -43,16 +43,7 @@ function RootDocument({ children }: Readonly<{ children: ReactNode }>) { config={{ position: 'bottom-right', }} - plugins={[ - { - name: 'TanStack Router', - render: , - }, - { - name: 'TanStack Query', - render: , - }, - ]} + plugins={[routerDevtools, queryDevtools]} />