@antdv/pro-utils
Version:
@antdv/pro-utils
75 lines (74 loc) • 2.37 kB
JavaScript
import { createVNode as _createVNode } from "vue";
import { useIntl } from "@antdv/pro-provider";
import { Button } from "ant-design-vue";
import { useConfigContextInject } from "ant-design-vue/es/config-provider/context";
import { computed, defineComponent } from "vue";
import { classNames } from "../../classNames/index.mjs";
import { boolType, funcType, oneOfType } from "../../vueHelper/index.mjs";
import { useStyle } from "./style.mjs";
const dropdownFooterProps = {
onClear: funcType(),
onConfirm: funcType(),
disabled: boolType(),
footerRender: oneOfType([Function, Boolean])
};
const DropdownFooter = defineComponent({
name: "DropdownFooter",
props: dropdownFooterProps,
setup(props) {
const intl = useIntl();
const {
getPrefixCls
} = useConfigContextInject();
const prefixCls = computed(() => getPrefixCls("pro-core-dropdown-footer"));
const {
wrapSSR,
hashId
} = useStyle(prefixCls);
return () => {
const {
onClear,
onConfirm,
disabled,
footerRender
} = props;
const defaultFooter = [_createVNode(Button, {
"key": "clear",
"style": {
visibility: onClear ? "visible" : "hidden"
},
"type": "link",
"size": "small",
"disabled": disabled,
"onClick": (e) => {
if (onClear) {
onClear(e);
}
e.stopPropagation();
}
}, {
default: () => [intl.getMessage("form.lightFilter.clear", "\u6E05\u9664")]
}), _createVNode(Button, {
"key": "confirm",
"data-type": "confirm",
"type": "primary",
"size": "small",
"onClick": onConfirm,
"disabled": disabled
}, {
default: () => [intl.getMessage("form.lightFilter.confirm", "\u786E\u8BA4")]
})];
if (footerRender === false || (footerRender == null ? void 0 : footerRender(onConfirm, onClear)) === false) {
return null;
}
const renderDom = (footerRender == null ? void 0 : footerRender(onConfirm, onClear)) || defaultFooter;
return wrapSSR(_createVNode("div", {
"class": classNames(prefixCls.value, hashId.value),
"onClick": (e) => e.target.getAttribute("data-type") !== "confirm" && e.stopPropagation()
}, [renderDom]));
};
}
});
export {
DropdownFooter
};