简化 React 弹窗类组件调用的工具
npm install openify
# or
yarn add openify
# or
pnpm add openify
type OpenableModalProps = OpenParams<void> &
Omit<ModalProps, "visible" | "onOk" | "onCancel" | "afterClose">;
const openableModal = openify<OpenableModalProps>(
({ visible, onClose, afterClose, ...restProps }) => (
<Modal
open={visible}
onOk={onClose}
onCancel={onClose}
afterClose={afterClose}
{...restProps}
/>
),
);
const App = ({ children }: PropsWithChildren) => {
return (
<>
{children}
<Slot id="root" />
</>
);
};
<Button
onClick={() =>
Slot.getById("root").open(openableModal, {
title: "欢迎使用Openify",
okText: "确定",
cancelText: "取消",
})
}
>
打开弹窗
</Button>