UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

52 lines (49 loc) 1.5 kB
import { ref, getCurrentInstance, computed } from 'vue'; import { useDrawerEvent } from './use-drawer-event.mjs'; import { useDrawerState } from './use-drawer-state.mjs'; import { useStyle } from '../../../../hook/use-style/index.mjs'; import '../../../../hook/use-zindex/index.mjs'; function useDrawer({ props, visible }) { const uStyle = useStyle(); const rendered = ref(false); const { emit } = getCurrentInstance(); const { isLoading } = useDrawerState({ props }); const { useBeforeCancel, useBeforeChange, useClose } = 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 = 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 = computed(() => { return visible.value ? "" : props.placement; }); return { useBeforeCancel, useBeforeChange, useClose, useEnter, useBeforeEnter, useAfterEnter, useBeforeLeave, useAfterLeave, isLoading, rendered, size, offset }; } export { useDrawer }; //# sourceMappingURL=use-drawer.mjs.map