// // Copyright 2022 DXOS.org // import '@dxos-theme'; import React, { type ReactNode, useState } from 'react'; import { Toast } from './Toast'; import { withTheme } from '../../testing'; import { Button } from '../Buttons'; type ActionTriggerProps = { altText: string; trigger: ReactNode }; type StorybookToastProps = Partial<{ title: string; description: string; actionTriggers: ActionTriggerProps[]; openTrigger: string; closeTrigger: ReactNode; }>; const DefaultStory = ({ title, description, actionTriggers, openTrigger, closeTrigger }: StorybookToastProps) => { const [open, setOpen] = useState(true); return ( {title} {description} {closeTrigger} {(actionTriggers || []).map(({ altText, trigger }: ActionTriggerProps, index: number) => ( {trigger} ))} ); }; export default { title: 'ui/react-ui-core/Toast', component: Toast, render: DefaultStory, decorators: [withTheme], parameters: { chromatic: { disableSnapshot: false } }, }; export const Default = { args: { openTrigger: 'Open toast', title: 'This is a toast', description: 'This goes away on its own with a timer.', actionTriggers: [ { altText: 'Press F5 to reload the page', trigger: , }, ], closeTrigger: , }, parameters: { chromatic: { delay: 800 }, }, };