@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 1.56 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-throttle-render/index.ts"],"sourcesContent":["import { onMounted, ref, watch } from 'vue'\n\nimport type { Ref } from 'vue'\n\nexport const useThrottleRender = (loading: Ref<boolean>, throttle = 0) => {\n if (throttle === 0) return loading\n const throttled = ref(false)\n let timeoutHandle = 0\n\n const dispatchThrottling = () => {\n if (timeoutHandle) {\n clearTimeout(timeoutHandle)\n }\n timeoutHandle = window.setTimeout(() => {\n throttled.value = loading.value\n }, throttle)\n }\n onMounted(dispatchThrottling)\n\n watch(\n () => loading.value,\n (val) => {\n if (val) {\n dispatchThrottling()\n } else {\n throttled.value = val\n }\n }\n )\n return throttled\n}\n"],"names":[],"mappings":";;AAIO,MAAM,iBAAoB,GAAA,CAAC,OAAuB,EAAA,QAAA,GAAW,CAAM,KAAA;AACxE,EAAA,IAAI,QAAa,KAAA,CAAA;AAAG,IAAO,OAAA,OAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAC3B,EAAA,IAAI,aAAgB,GAAA,CAAA,CAAA;AAEpB,EAAA,MAAM,qBAAqB,MAAM;AAC/B,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,YAAA,CAAa,aAAa,CAAA,CAAA;AAAA,KAC5B;AACA,IAAgB,aAAA,GAAA,MAAA,CAAO,WAAW,MAAM;AACtC,MAAA,SAAA,CAAU,QAAQ,OAAQ,CAAA,KAAA,CAAA;AAAA,OACzB,QAAQ,CAAA,CAAA;AAAA,GACb,CAAA;AACA,EAAA,SAAA,CAAU,kBAAkB,CAAA,CAAA;AAE5B,EAAA,KAAA;AAAA,IACE,MAAM,OAAQ,CAAA,KAAA;AAAA,IACd,CAAC,GAAQ,KAAA;AACP,MAAA,IAAI,GAAK,EAAA;AACP,QAAmB,kBAAA,EAAA,CAAA;AAAA,OACd,MAAA;AACL,QAAA,SAAA,CAAU,KAAQ,GAAA,GAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF,CAAA;AACA,EAAO,OAAA,SAAA,CAAA;AACT;;;;"}