song-ui-u
Version:
vue3 + js的PC前端组件库
54 lines (50 loc) • 1.54 kB
JavaScript
;
var vue = require('vue');
var useDrawerEvent = require('./use-drawer-event.cjs');
var useDrawerState = require('./use-drawer-state.cjs');
var index = require('../../../../hook/use-style/index.cjs');
require('../../../../hook/use-zindex/index.cjs');
function useDrawer({ props, visible }) {
const uStyle = index.useStyle();
const rendered = vue.ref(false);
const { emit } = vue.getCurrentInstance();
const { isLoading } = useDrawerState.useDrawerState({ props });
const { useBeforeCancel, useBeforeChange, useClose } = useDrawerEvent.useDrawerEvent({ props, visible, isLoading });
const useBeforeEnter = () => {
rendered.value = true;
};
const useEnter = () => emit("open");
const useAfterEnter = () => emit("opened");
const useBeforeLeave = () => emit("close");
const useAfterLeave = () => {
props.unmountOnClose && (rendered.value = false);
emit("closed");
};
const size = vue.computed(() => {
if (["left", "right"].includes(props.placement)) {
return uStyle.width(props.size);
}
if (["top", "bottom"].includes(props.placement)) {
return uStyle.height(props.size);
}
});
const offset = vue.computed(() => {
return visible.value ? "" : props.placement;
});
return {
useBeforeCancel,
useBeforeChange,
useClose,
useEnter,
useBeforeEnter,
useAfterEnter,
useBeforeLeave,
useAfterLeave,
isLoading,
rendered,
size,
offset
};
}
exports.useDrawer = useDrawer;
//# sourceMappingURL=use-drawer.cjs.map