UNPKG

@hazae41/glacier

Version:

Yet another React data (re)fetching library

1 lines 1.4 kB
{"version":3,"file":"use-visible.cjs","sources":["../../../../../../../src/mods/react/hooks/blocks/use-visible.ts"],"sourcesContent":["import { ReactQuery } from \"mods/react/types/query.js\"\nimport { useEffect } from \"react\"\n\n/**\n * Do a request when the tab is visible\n * @param query \n */\nexport function useVisible<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 = () => {\n if (document.hidden)\n return\n fetch(init).catch(console.warn)\n }\n\n document.addEventListener(\"visibilitychange\", f)\n return () => document.removeEventListener(\"visibilitychange\", f)\n }, [ready, fetch])\n}"],"names":["useEffect"],"mappings":";;;;AAGA;;;AAGG;AACa,SAAA,UAAU,CAAU,KAA0B,EAAE,IAAkB,EAAA;IAChF,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;QAER,MAAM,CAAC,GAAG,MAAK;YACb,IAAI,QAAQ,CAAC,MAAM;gBACjB,OAAM;YACR,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACjC,SAAC,CAAA;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;QAChD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;AAClE,KAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AACpB;;;;"}