| 'use client' | |
| import * as React from 'react' | |
| import type { QueryClient } from '@tanstack/query-core' | |
| export const QueryClientContext = React.createContext<QueryClient | undefined>( | |
| undefined, | |
| ) | |
| export const useQueryClient = (queryClient?: QueryClient) => { | |
| const client = React.useContext(QueryClientContext) | |
| if (queryClient) { | |
| return queryClient | |
| } | |
| if (!client) { | |
| throw new Error('No QueryClient set, use QueryClientProvider to set one') | |
| } | |
| return client | |
| } | |
| export type QueryClientProviderProps = { | |
| client: QueryClient | |
| children?: React.ReactNode | |
| } | |
| export const QueryClientProvider = ({ | |
| client, | |
| children, | |
| }: QueryClientProviderProps): React.JSX.Element => { | |
| React.useEffect(() => { | |
| client.mount() | |
| return () => { | |
| client.unmount() | |
| } | |
| }, [client]) | |
| return ( | |
| <QueryClientContext.Provider value={client}> | |
| {children} | |
| </QueryClientContext.Provider> | |
| ) | |
| } | |
Xet Storage Details
- Size:
- 919 Bytes
- Xet hash:
- f6b0c1890a65a5c9d4895e3f4b763b5b73b6a6606ce09a14e141b8679fd3ee86
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.