トーストプロバイダToastProviderExperimental
トーストの表示と管理を行います。
プレビュー
状態とバリエーション
成功通知をまとめて扱う
保存や更新の完了は Provider 経由で画面右上に集約します。
長めに出す失敗通知
失敗通知はユーザーが読めるように、成功通知より長めに表示できます。
ラベルのローカライズ
閉じるボタンのラベルは Provider に渡して全 Toast に反映します。
補足+操作つき(オブジェクト形)
showToast にオブジェクトを渡すと description(2行目)と action(操作ボタン)を足せます。位置引数の呼び出しはそのまま使えます。
プロパティ
表は横にスクロールできます
| プロパティ | 型 | 初期値 | 説明 |
|---|---|---|---|
| children | React.ReactNode | - | useToast を呼び出すアプリ領域です。 |
| labels.close | string | 'Close notification' | Toast の閉じるボタンに使うラベルとツールチップです。 |
| showToast | (message, type?, duration?) | (options: ShowToastOptions) | - | useToast から取得する通知表示関数。従来の位置引数に加え、リッチ表示用のオブジェクト形も受け付けます: { message, type?, duration?, description?, action? }。 |
使い方
import { Button, ToastProvider, useToast } from "@gunjo/ui"
function ToastActions() {
const { showToast } = useToast()
return (
<div className="flex flex-wrap gap-2">
<Button onClick={() => showToast("設定を保存しました。", "success")}>
成功通知
</Button>
<Button
variant="destructive"
onClick={() => showToast("保存できませんでした。接続を確認してください。", "error", 4500)}
>
失敗通知
</Button>
<Button variant="outline" onClick={() => showToast("同期をバックグラウンドで続行しています。", "info")}>
情報通知
</Button>
</div>
)
}
export function ToastProviderExample() {
return (
<ToastProvider labels={{ close: "通知を閉じる" }}>
<ToastActions />
</ToastProvider>
)
}