@hazae41/glacier
Version:
Yet another React data (re)fetching library
1 lines • 1.35 kB
Source Map (JSON)
{"version":3,"file":"use-interval.mjs","sources":["../../../../../../../src/mods/react/hooks/blocks/use-interval.ts"],"sourcesContent":["import { ReactQuery } from \"mods/react/types/query.js\"\nimport { useEffect } from \"react\"\n\n/**\n * Do a request on interval\n * @see useRetry for error retry\n * @param query \n * @param interval \n */\nexport function useInterval<K, D, F>(query: ReactQuery<K, D, F>, interval: number, init?: RequestInit) {\n const { fetcher, ready, fetchOrThrow: fetch } = query\n\n useEffect(() => {\n if (!ready)\n return\n if (fetcher == null)\n return\n if (!interval)\n return\n\n const f = () => fetch(init).catch(console.warn)\n const i = setInterval(f, interval)\n return () => clearInterval(i)\n }, [ready, fetch, interval])\n}"],"names":[],"mappings":";;AAGA;;;;;AAKG;SACa,WAAW,CAAU,KAA0B,EAAE,QAAgB,EAAE,IAAkB,EAAA;IACnG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAErD,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,KAAK;YACR,OAAM;QACR,IAAI,OAAO,IAAI,IAAI;YACjB,OAAM;AACR,QAAA,IAAI,CAAC,QAAQ;YACX,OAAM;AAER,QAAA,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AAClC,QAAA,OAAO,MAAM,aAAa,CAAC,CAAC,CAAC,CAAA;KAC9B,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC9B;;;;"}