import React, { useCallback, useState } from 'react';
import { Modal, ModalBody, ModalFooter, ModalHeader } from '../../index';
import description from './Modal.md';
import { Meta, Story } from '@storybook/react';
import { ModalProps } from './Modal';

const meta: Meta = {
  title: 'Components/Modal',
  component: Modal,
  parameters: {
    docs: {
      description: {
        component: description,
      },
    },
  },
  argTypes: {
    children: {
      table: {
        disable: true,
      },
    },
    className: {
      type: 'string',
    },
  },
};

export default meta;

const Template: Story<ModalProps> = (args) => {
  const [isOpen, setIsOpen] = useState<boolean>(true);

  const toggle = useCallback(() => {
    setIsOpen((prevIsOpen) => !prevIsOpen);
  }, []);

  return (
    <Modal {...args} isOpen={isOpen} toggle={toggle}>
      <ModalHeader toggle={toggle} />
      <ModalBody>Modal Body</ModalBody>
      <ModalFooter>Modal Footer</ModalFooter>
    </Modal>
  );
};

export const Default = Template.bind({});

Default.args = {};
