UNPKG

@antdv/pro-utils

Version:

@antdv/pro-utils

75 lines (74 loc) 2.37 kB
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 };