UNPKG

antd-mini

Version:

antd-mini 是支付宝小程序 UI 组件库,遵循 Ant Design 规范。

66 lines (61 loc) 1.74 kB
import { effect } from '@preact/signals-core'; import equal from 'fast-deep-equal'; import { ComponentWithSignalStoreImpl, getValueFromProps, triggerEventOnly, } from '../_util/simply'; import i18nController from '../_util/store'; import { BuiltinStatus, PageDefaultProps } from './props'; ComponentWithSignalStoreImpl({ storeOptions: { store: () => i18nController, updateHook: effect, mapState: { locale: ({ store }) => store.currentLocale.value, }, }, props: PageDefaultProps, methods: { handleActionTap(e) { triggerEventOnly(this, 'actionTap', e); }, handleSecondaryActionTap(e) { triggerEventOnly(this, 'secondaryActionTap', e); }, updatePageStatus(prevProps: any, nextProps: any) { if (!equal(prevProps, nextProps)) { const [status, image, title, message] = getValueFromProps(this, [ 'status', 'image', 'title', 'message', ]); const updateData = { ...nextProps, // 自定义内容优先 status image: image || BuiltinStatus[status]?.image || '', title: title || BuiltinStatus[status]?.title || this.data.locale.pageContainer[status]?.title || '', message: message || BuiltinStatus[status]?.message || this.data.locale.pageContainer[status]?.message || '', }; this.setData(updateData); } }, }, didMount() { const props = getValueFromProps(this); this.updatePageStatus({}, props); }, didUpdate(prevProps) { const props = getValueFromProps(this); this.updatePageStatus(prevProps, props); }, });