UNPKG

sard-uniapp

Version:

sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

39 lines (38 loc) 1.03 kB
import { inject, ref, provide, watch, reactive } from 'vue'; import { defaultConfig } from '../config'; export const defaultPopupProps = () => ({ duration: 250, effect: 'fade', overlay: true, overlayClosable: true, lockScroll: true, backPress: 'close', ...defaultConfig.popup, }); export const popupContextSymbol = Symbol('popup-context'); export function usePopupVisibleHookProvide() { const visibleState = ref(); provide(popupContextSymbol, reactive({ visibleState, })); function callVisibleHook(name) { visibleState.value = name; } return callVisibleHook; } export function usePopupEnter(callback) { const context = inject(popupContextSymbol, null); if (context) { watch(() => context.visibleState, () => { if (context.visibleState === 'after-enter') { callback?.(); } }); } return { context, }; } export function useInPopup() { return !!inject(popupContextSymbol, null); }