import React, { useEffect, useState } from "react"; import { useTheme } from "styled-components"; import { Modal, useModal } from "."; import { ModalProps } from "./types"; import Button from "../../components/Button/Button"; import Heading from "../../components/Heading/Heading"; export default { title: "Widgets/Modal", component: Modal, argTypes: {}, }; const CustomModal: React.FC> = ({ title, onDismiss, ...props }) => ( {title} ); export const Default: React.FC = () => { const theme = useTheme(); const [onPresent1] = useModal(); const [onPresent2] = useModal(); const [onPresent3] = useModal(); return (
); }; export const DisableOverlayClick: React.FC = () => { const [onPresent1] = useModal(, false); return (
); }; export const WithBackButton: React.FC = () => { const BackButtonModal: React.FC> = ({ title, onDismiss }) => { const handleOnBack = () => { return 1; }; return ( ); }; const [onPresent1] = useModal(, false); return ; }; export const WithCustomHeader: React.FC = () => { const CustomHeaderModal: React.FC> = ({ title, onDismiss }) => { return ( Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eu pretium massa. Donec et gravida eros, eget sollicitudin sapien. Donec imperdiet lorem nulla, at hendrerit purus lacinia ut. Phasellus rhoncus justo in tincidunt cursus. Fusce vulputate, enim id facilisis faucibus, justo nunc consectetur nibh, sit amet euismod ante mauris ut est. Vestibulum eu ligula eu erat eleifend imperdiet et eu nulla. Curabitur sodales ullamcorper nibh sed sagittis. Integer a elit nec nisl cursus vehicula eu a nibh. Donec posuere tortor id egestas ultrices. Aliquam in eros eros. Maecenas fringilla enim varius, fringilla lectus ut, finibus sapien. Phasellus ac vulputate libero, id vehicula massa. Ut dignissim lorem ut risus accumsan feugiat. Quisque odio mi, sollicitudin non elementum nec, tristique non est. Sed faucibus ante hendrerit viverra volutpat. Proin et enim nec ipsum sodales suscipit eu nec lacus. Nulla consequat volutpat scelerisque. Phasellus ligula orci, dictum quis commodo et, tempor quis ligula. Pellentesque eget dapibus leo. Aliquam in ipsum vehicula, suscipit ipsum nec, viverra mauris. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eu pretium massa. Donec et gravida eros, eget sollicitudin sapien. Donec imperdiet lorem nulla, at hendrerit purus lacinia ut. Phasellus rhoncus justo in tincidunt cursus. Fusce vulputate, enim id facilisis faucibus, justo nunc consectetur nibh, sit amet euismod ante mauris ut est. Vestibulum eu ligula eu erat eleifend imperdiet et eu nulla. Curabitur sodales ullamcorper nibh sed sagittis. Integer a elit nec nisl cursus vehicula eu a nibh. Donec posuere tortor id egestas ultrices. Aliquam in eros eros. Maecenas fringilla enim varius, fringilla lectus ut, finibus sapien. Phasellus ac vulputate libero, id vehicula massa. Ut dignissim lorem ut risus accumsan feugiat. Quisque odio mi, sollicitudin non elementum nec, tristique non est. Sed faucibus ante hendrerit viverra volutpat. Proin et enim nec ipsum sodales suscipit eu nec lacus. Nulla consequat volutpat scelerisque. Phasellus ligula orci, dictum quis commodo et, tempor quis ligula. Pellentesque eget dapibus leo. Aliquam in ipsum vehicula, suscipit ipsum nec, viverra mauris. ); }; const [onPresent1] = useModal(); return ; }; export const ReactingToOutsideChanges: React.FC = () => { const [counter, setCounter] = useState(0); useEffect(() => { const intervalId = setInterval(() => { setCounter((prev) => prev + 1); }, 500); return () => clearInterval(intervalId); }, []); const ReactiveModal: React.FC> = ({ title, count, onDismiss, }) => { return (

Counter: {count}

); }; const [onPresent1] = useModal( , true, true, "reactiveModal" ); const [onPresent2] = useModal( ); return (

Counter: {counter}

); };