first commit
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
||||
import { Ref } from "vue";
|
||||
|
||||
//#region ../../packages/hooks/use-intermediate-render/index.d.ts
|
||||
type UseDelayedRenderProps = {
|
||||
indicator: Ref<boolean>;
|
||||
intermediateIndicator: Ref<boolean>;
|
||||
shouldSetIntermediate?: (step: 'show' | 'hide') => boolean;
|
||||
beforeShow?: () => void;
|
||||
beforeHide?: () => void;
|
||||
afterShow?: () => void;
|
||||
afterHide?: () => void;
|
||||
};
|
||||
declare const useDelayedRender: ({
|
||||
indicator,
|
||||
intermediateIndicator,
|
||||
shouldSetIntermediate,
|
||||
beforeShow,
|
||||
afterShow,
|
||||
afterHide,
|
||||
beforeHide
|
||||
}: UseDelayedRenderProps) => void;
|
||||
//#endregion
|
||||
export { UseDelayedRenderProps, useDelayedRender };
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
||||
let vue = require("vue");
|
||||
|
||||
//#region ../../packages/hooks/use-intermediate-render/index.ts
|
||||
const useDelayedRender = ({ indicator, intermediateIndicator, shouldSetIntermediate = () => true, beforeShow, afterShow, afterHide, beforeHide }) => {
|
||||
(0, vue.watch)(() => (0, vue.unref)(indicator), (val) => {
|
||||
if (val) {
|
||||
beforeShow?.();
|
||||
(0, vue.nextTick)(() => {
|
||||
if (!(0, vue.unref)(indicator)) return;
|
||||
if (shouldSetIntermediate("show")) intermediateIndicator.value = true;
|
||||
});
|
||||
} else {
|
||||
beforeHide?.();
|
||||
(0, vue.nextTick)(() => {
|
||||
if ((0, vue.unref)(indicator)) return;
|
||||
if (shouldSetIntermediate("hide")) intermediateIndicator.value = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
(0, vue.watch)(() => intermediateIndicator.value, (val) => {
|
||||
if (val) afterShow?.();
|
||||
else afterHide?.();
|
||||
});
|
||||
};
|
||||
|
||||
//#endregion
|
||||
exports.useDelayedRender = useDelayedRender;
|
||||
//# sourceMappingURL=index.js.map
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/hooks/use-intermediate-render/index.ts"],"sourcesContent":["import { nextTick, unref, watch } from 'vue'\n\nimport type { Ref } from 'vue'\n\nexport type UseDelayedRenderProps = {\n indicator: Ref<boolean>\n intermediateIndicator: Ref<boolean>\n shouldSetIntermediate?: (step: 'show' | 'hide') => boolean\n beforeShow?: () => void\n beforeHide?: () => void\n afterShow?: () => void\n afterHide?: () => void\n}\n\nexport const useDelayedRender = ({\n indicator,\n intermediateIndicator,\n shouldSetIntermediate = () => true,\n beforeShow,\n afterShow,\n afterHide,\n beforeHide,\n}: UseDelayedRenderProps) => {\n watch(\n () => unref(indicator),\n (val) => {\n if (val) {\n beforeShow?.()\n nextTick(() => {\n if (!unref(indicator)) return\n if (shouldSetIntermediate('show')) {\n intermediateIndicator.value = true\n }\n })\n } else {\n beforeHide?.()\n nextTick(() => {\n if (unref(indicator)) return\n\n if (shouldSetIntermediate('hide')) {\n intermediateIndicator.value = false\n }\n })\n }\n }\n )\n\n // because we don't always set the value ourselves, so that we\n // simply watch the value's state, then invoke the corresponding hook.\n watch(\n () => intermediateIndicator.value,\n (val) => {\n if (val) {\n afterShow?.()\n } else {\n afterHide?.()\n }\n }\n )\n}\n"],"mappings":";;;;;AAcA,MAAa,oBAAoB,EAC/B,WACA,uBACA,8BAA8B,MAC9B,YACA,WACA,WACA,iBAC2B;AAC3B,qCACc,UAAU,GACrB,QAAQ;AACP,MAAI,KAAK;AACP,iBAAc;AACd,2BAAe;AACb,QAAI,gBAAO,UAAU,CAAE;AACvB,QAAI,sBAAsB,OAAO,CAC/B,uBAAsB,QAAQ;KAEhC;SACG;AACL,iBAAc;AACd,2BAAe;AACb,uBAAU,UAAU,CAAE;AAEtB,QAAI,sBAAsB,OAAO,CAC/B,uBAAsB,QAAQ;KAEhC;;GAGP;AAID,sBACQ,sBAAsB,QAC3B,QAAQ;AACP,MAAI,IACF,cAAa;MAEb,cAAa;GAGlB"}
|
||||
Reference in New Issue
Block a user