import { Meta, StoryObj } from "@storybook/react-vite";
import { Modal, ModalProps, useModal } from "./Modal";
/**
* The modal component provides a solid foundation for creating dialogs, popovers, lightboxes, or whatever else.
*
* ```tsx
* import {Modal} from "@tsed/react-formio/molecules/modal/Modal";
* ```
*/
export default {
title: "Modal",
component: Modal,
argTypes: {
onSubmit: {
title: {
control: {
type: "text"
}
},
control: {
action: "onSubmit"
}
}
},
parameters: {},
render(args) {
// eslint-disable-next-line react-hooks/rules-of-hooks
const modal = useModal();
return (
);
},
tags: ["autodocs"]
} satisfies Meta;
type Story = StoryObj;
export const Sandbox: Story = {};
export const WithTitle: Story = {
render: (args: ModalProps) => {
// eslint-disable-next-line react-hooks/rules-of-hooks
const modal = useModal();
return (
);
},
args: {
title: "Modal title"
}
};
export const WithFooter = {
render: (args: ModalProps) => {
// eslint-disable-next-line react-hooks/rules-of-hooks
const modal = useModal();
function ModalFooter({ closeModal, onSubmit }: any) {
return (
{
onSubmit(e);
closeModal();
}}
>
Save
Close
);
}
return (
Open modal
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
Hello body
);
},
args: {
title: "Modal title"
}
};