import * as React from "react"; import { action } from "@storybook/addon-actions"; import { Meta, StoryFn } from "@storybook/react"; import { Toaster, Toast } from ".."; import { fontSizes } from "../../shared/styles/typography"; import { purple } from "../../design-tokens/build/js/designTokens"; import { ToastProps } from "../components/Toast"; import { toasterAppearance } from "../../storybookHelpers/controlConstants"; let addedToastId = 1; const toastTitle = "I have a message for you"; const fakeButtonStyles = { ["-webkit-appearance"]: "none", ["-moz-appearance"]: "none", background: "transparent", border: "none", color: purple, cursor: "pointer", fontSize: fontSizes.s, padding: 0 }; export default { title: "Feedback/Toaster", component: Toast, subcomponents: { Toaster }, argTypes: { appearance: { control: { type: "select" }, options: toasterAppearance } } } as Meta; const Template: StoryFn = args => ( ); export const Default = { render: Template, args: { appearance: "default" } }; export const Description = { render: args => ( ), args: { appearance: "default" } }; export const MultiToast = { render: args => ( ), args: { appearance: "default" } }; export const AutoDismiss = () => { const [toasts, setToasts] = React.useState([]); const removeToast = (id: number) => { setToasts(toasts => toasts.filter(toast => toast !== id)); }; const handleToastAdd = () => { const newToastId = addedToastId++; setToasts(toasts => [...toasts, newToastId]); }; return (
{toasts.map(toastId => { const handleDismiss = () => { removeToast(toastId); }; return ( ); })}
); }; AutoDismiss.argTypes = { appearance: { control: { disable: true } } }; export const CustomDismissTimeAutoDismiss = () => { const [toasts, setToasts] = React.useState([]); const removeToast = (id: number) => { setToasts(toasts => toasts.filter(toast => toast !== id)); }; const handleToastAdd = () => { const newToastId = addedToastId++; setToasts(toasts => [...toasts, newToastId]); }; return (
{toasts.map(toastId => { const handleDismiss = () => { removeToast(toastId); }; return ( ); })}
); }; CustomDismissTimeAutoDismiss.argTypes = { appearance: { control: { disable: true } } }; export const WithDismissCallback = { render: () => ( {[ ]} ), argTypes: { appearance: { control: { disable: true } } } }; export const With1Action = { render: () => ( {[ primaryAction } id="oneAction" /> ]} ), argTypes: { appearance: { control: { disable: true } } } }; export const With2Actions = { render: () => ( {[ primaryAction } secondaryAction={ } id="twoActions" /> ]} ), argTypes: { appearance: { control: { disable: true } } } };