{"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;;;;"}