UNPKG

@tanstack/react-query

Version:

Hooks for managing, caching and syncing asynchronous and remote data in React

1 lines 2.08 kB
{"version":3,"file":"Hydrate.mjs","sources":["../../src/Hydrate.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport type { HydrateOptions } from '@tanstack/query-core'\nimport { hydrate } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { ContextOptions } from './types'\n\nexport function useHydrate(\n state: unknown,\n options: HydrateOptions & ContextOptions = {},\n) {\n const queryClient = useQueryClient({ context: options.context })\n\n const optionsRef = React.useRef(options)\n optionsRef.current = options\n\n // Running hydrate again with the same queries is safe,\n // it wont overwrite or initialize existing queries,\n // relying on useMemo here is only a performance optimization.\n // hydrate can and should be run *during* render here for SSR to work properly\n React.useMemo(() => {\n if (state) {\n hydrate(queryClient, state, optionsRef.current)\n }\n }, [queryClient, state])\n}\n\nexport interface HydrateProps {\n state?: unknown\n options?: HydrateOptions\n children?: React.ReactNode\n}\n\nexport const Hydrate = ({ children, options, state }: HydrateProps) => {\n useHydrate(state, options)\n return children as React.ReactElement\n}\n"],"names":["useHydrate","state","options","queryClient","useQueryClient","context","optionsRef","React","useRef","current","useMemo","hydrate","Hydrate","children"],"mappings":";;;;AAQO,SAASA,UAAT,CACLC,KADK,EAELC,OAAwC,GAAG,EAFtC,EAGL;EACA,MAAMC,WAAW,GAAGC,cAAc,CAAC;IAAEC,OAAO,EAAEH,OAAO,CAACG,OAAAA;AAAnB,GAAD,CAAlC,CAAA;AAEA,EAAA,MAAMC,UAAU,GAAGC,KAAK,CAACC,MAAN,CAAaN,OAAb,CAAnB,CAAA;AACAI,EAAAA,UAAU,CAACG,OAAX,GAAqBP,OAArB,CAJA;AAOA;AACA;AACA;;EACAK,KAAK,CAACG,OAAN,CAAc,MAAM;AAClB,IAAA,IAAIT,KAAJ,EAAW;MACTU,OAAO,CAACR,WAAD,EAAcF,KAAd,EAAqBK,UAAU,CAACG,OAAhC,CAAP,CAAA;AACD,KAAA;AACF,GAJD,EAIG,CAACN,WAAD,EAAcF,KAAd,CAJH,CAAA,CAAA;AAKD,CAAA;AAQM,MAAMW,OAAO,GAAG,CAAC;EAAEC,QAAF;EAAYX,OAAZ;AAAqBD,EAAAA,KAAAA;AAArB,CAAD,KAAgD;AACrED,EAAAA,UAAU,CAACC,KAAD,EAAQC,OAAR,CAAV,CAAA;AACA,EAAA,OAAOW,QAAP,CAAA;AACD;;;;"}