|
1 | 1 | 'use client'
|
2 | 2 |
|
3 |
| -import { QueryClient, QueryClientProvider } from '@tanstack/react-query' |
| 3 | +import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query' |
4 | 4 | import { FC, PropsWithChildren } from 'react'
|
| 5 | +import { Envelope } from '@cucumber/messages' |
| 6 | +import * as Sentry from '@sentry/nextjs' |
5 | 7 |
|
6 |
| -const queryClient = new QueryClient() |
| 8 | +const queryClient = new QueryClient({ |
| 9 | + queryCache: new QueryCache({ |
| 10 | + onSuccess: (data, query) => { |
| 11 | + if (query.meta?.envelopes) { |
| 12 | + const envelopes = data as ReadonlyArray<Envelope> |
| 13 | + const meta = envelopes?.find(e => e.meta)?.meta |
| 14 | + if (meta) { |
| 15 | + Sentry.setTag('meta_os_name', meta.os.name) |
| 16 | + Sentry.setTag('meta_os_version', meta.os.version) |
| 17 | + Sentry.setTag('meta_runtime_name', meta.runtime.name) |
| 18 | + Sentry.setTag('meta_runtime_version', meta.runtime.version) |
| 19 | + Sentry.setTag('meta_implementation_name', meta.implementation.name) |
| 20 | + Sentry.setTag('meta_implementation_version', meta.implementation.version) |
| 21 | + } |
| 22 | + } |
| 23 | + }, |
| 24 | + }), |
| 25 | +}) |
7 | 26 |
|
8 | 27 | export const ClientWrapper: FC<PropsWithChildren> = ({ children }) => {
|
9 | 28 | return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
|
0 commit comments