import { Canvas, Meta, Story, ArgsTable } from "@storybook/addon-docs";

import {
  Examples,
  Example,
  Note,
  Title,
  VariantsTable,
  VariantColumn,
  RowTitles,
  CustomArgsTable,
  VariantRow,
} from "@calcom/storybook/components";

import { SuccessToast, ErrorToast, WarningToast, DefaultToast } from "./";

<Meta title="UI/Toasts" component={DefaultToast} />

<Title title="Toasts" suffix="Brief" subtitle="Version 2.0 — Last Update: 22 Aug 2022" />

## Definition

Toasts are used to show an action has had a impact. If a user submits a form a toast should be shown to notify the user there has been a success

## Structure

<CustomArgsTable of={DefaultToast} />

<Examples title="Toasts">
  <Example title="Default">
    <DefaultToast message="Default Toast" toastVisible={true} />
  </Example>
  <Example title="Success">
    <SuccessToast message="Success Toast" toastVisible={true} />
  </Example>
  <Example title="Warning">
    <WarningToast message="Warning Toast" toastVisible={true} />
  </Example>
  <Example title="Error">
    <ErrorToast message="Error Toast" toastVisible={true} />
  </Example>
</Examples>

## Toast Story

<Canvas>
  <Story
    name="Default"
    args={{
      message: "Default Toast",
      toastVisible: true,
    }}
    argTypes={{
      message: { control: "text" },
      toastVisible: { control: "boolean" },
    }}>
    {({ message, toastVisible }) => (
      <VariantsTable titles={["Default", "Success", "Warning", "Error"]} columnMinWidth={150}>
        <VariantRow variant="Default">
          <DefaultToast message={message} toastVisible={toastVisible} />
          <SuccessToast message={message} toastVisible={toastVisible} />
          <WarningToast message={message} toastVisible={toastVisible} />
          <ErrorToast message={message} toastVisible={toastVisible} />
        </VariantRow>
      </VariantsTable>
    )}
  </Story>
</Canvas>
