{"version":3,"file":"use-online.cjs","sources":["../../../../../../../src/mods/react/hooks/blocks/use-online.ts"],"sourcesContent":["import { ReactQuery } from \"mods/react/types/query.js\"\nimport { useEffect } from \"react\"\n\n/**\n * Do a request when the browser is online\n * @param query \n */\nexport function useOnline<K, D, F>(query: ReactQuery<K, D, F>, init?: RequestInit) {\n  const { fetcher, ready, fetchOrThrow: fetch } = query\n\n  useEffect(() => {\n    if (!ready)\n      return\n    if (fetcher == null)\n      return\n\n    const f = () => fetch(init).catch(console.warn)\n\n    addEventListener(\"online\", f)\n    return () => removeEventListener(\"online\", f)\n  }, [ready, fetch])\n}"],"names":["useEffect"],"mappings":";;;;AAGA;;;AAGG;AACa,SAAA,SAAS,CAAU,KAA0B,EAAE,IAAkB,EAAA;IAC/E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAErDA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,KAAK;YACR,OAAM;QACR,IAAI,OAAO,IAAI,IAAI;YACjB,OAAM;AAER,QAAA,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE/C,QAAA,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC7B,OAAO,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC/C,KAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AACpB;;;;"}