トーストToastExperimental

一時的に表示する短いメッセージです。

プレビュー

プロジェクトを保存しました。

状態とバリエーション

成功通知

保存や更新が完了したことを短く伝えます。

失敗通知

復旧できる失敗を短く示し、必要なら近くの操作で再試行させます。

情報通知

ユーザーの操作を止めない軽い更新に使います。

枠内で確認する

docs やカード内で確認する場合は inline を指定します。実アプリで単体 Toast を画面上に浮かせる場合は既定の fixed を使います。

処理が完了しました。

補足+操作つき

description で2行目を、action で操作ボタンを1つ足せます。action を押すと onClick 実行後にトーストが閉じます。action があり duration 未指定なら、押す前に消えないよう既定を長めにします。

プロパティ

表は横にスクロールできます
プロパティ初期値説明
messagestring-通知に表示する短い本文です。
type"error" | "info" | "success"'success'通知の意味を示す見た目です。
isVisibleboolean-表示状態です。false の時は描画しません。
onClose() => void-自動クローズまたは閉じるボタンで呼び出します。
descriptionReactNode-message の下に muted 色で表示する2行目の補足です。
action{ label: string; onClick: () => void; altText?: string }-閉じるボタンの手前に置く操作ボタンを1つ。押すと onClick を実行してからトーストを閉じます。
durationnumber3000(action ありは 6000)自動で閉じるまでの時間(ミリ秒)。action があり未指定なら、押す前に消えないよう既定を長くします。
placement'fixed' | 'inline''fixed'実アプリでは fixed、docs やカード内プレビューでは inline を使います。
closeLabelstring'Close notification'閉じるボタンのアクセシブルラベルとツールチップです。

使い方

import * as React from "react"
import { Button, Toast } from "@gunjo/ui"

export function SaveToastExample() {
  const [visible, setVisible] = React.useState(false)

  return (
    <div className="space-y-4">
      <Button variant="outline" onClick={() => setVisible(true)}>
        保存する
      </Button>
      <Toast
        message="プロジェクトを保存しました。"
        type="success"
        isVisible={visible}
        onClose={() => setVisible(false)}
        duration={2500}
        placement="inline"
        closeLabel="通知を閉じる"
      />
    </div>
  )
}

使用コンポーネント

設計の判断(UIXHERO)

「いつ・なぜ使うか」の判断は、姉妹サイト UIXHERO の記事で解説しています。