fant-mini-plus
Version:
fant-mini-plus是一个基于Vue3和TypeScript的uni-app高效UI组件库,提供丰富的组件和样式,帮助开发者快速构建高质量的移动应用。
41 lines (37 loc) • 947 B
text/typescript
/*
* @Author: weisheng
* @Date: 2022-12-14 17:33:21
* @LastEditTime: 2023-05-19 15:13:52
* @LastEditors: weisheng
* @Description:
* @FilePath: \fant-mini-plus\src\uni_modules\fant-mini-plus\components\hd-area\index.ts
* 记得注释
*/
import { type InjectionKey, type Ref, nextTick, provide, ref } from 'vue'
import type { Area } from './types'
/**
* useArea 用到的key
*
* @internal
*/
export const areaDefaultKey = Symbol('__AREA__') as InjectionKey<Ref<boolean>>
export function useArea(selector: string = ''): Area {
const areaShow = ref<boolean>(false) // 是否展示area
const areaKey = selector ? '__AREA__' + selector : areaDefaultKey
provide(areaKey, areaShow)
const showArea = () => {
if (areaShow.value) {
areaShow.value = false
}
nextTick(() => {
areaShow.value = true
})
}
const closeArea = () => {
areaShow.value = false
}
return {
showArea,
closeArea
}
}