sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
37 lines (36 loc) • 1.2 kB
JavaScript
import { defaultActionSheetProps, } from '../action-sheet/common';
import { defaultConfig } from '../config';
import { getAllImperatives, getAvailableImperative, getImperatives, } from '../../use';
export const defaultActionSheetAgentProps = () => ({
...defaultActionSheetProps(),
id: 'actionSheet',
...defaultConfig.actionSheetAgent,
});
export const imperativeName = 'actionSheet';
const show = (options = {}) => {
const { id = defaultActionSheetAgentProps().id } = options;
const imperative = getAvailableImperative(imperativeName, id);
if (imperative) {
imperative.show(options);
}
};
const actionSheet = (options) => {
show(options);
};
const hide = (id = defaultActionSheetAgentProps().id) => {
const imperatives = getImperatives(imperativeName, id);
if (imperatives && imperatives.length > 0) {
imperatives.forEach((item) => {
item.imperative.hide();
});
}
};
const hideAll = () => {
const mapImperatives = getAllImperatives()[imperativeName];
if (mapImperatives) {
Object.keys(mapImperatives).forEach(hide);
}
};
actionSheet.hide = hide;
actionSheet.hideAll = hideAll;
export { actionSheet };