Toast

Ekranın köşesinde üst üste dizilen, akışı engellemeyen kısa bildirimler.

KararlıKaynak kod

Import

tsx
import { ToastProvider, useToast } from "@merid/react";

Anatomi

Toast'lar imperative çalışır. Uygulamayı bir kez ToastProvider ile sar, sonra altındaki herhangi bir yerden useToast ile gelen toast()'u çağır.

tsx
<ToastProvider>
  <App /> {/* const { toast, dismiss } = useToast(); */}
</ToastProvider>

Her toast bir durum noktası, bir başlık, isteğe bağlı bir açıklama, isteğe bağlı bir aksiyon butonu ve bir kapatma butonu render'lar. Provider, etiketli bir bölgeyi ve içindeki polite live listeyi portal ile viewport'un sağ alt köşesine yerleştirir.

Örnekler

Tonlar

Ton yalnızca durum noktasının rengini değiştirir.

Aksiyon, kalıcılık ve kapatma

duration: Infinity toast'u kapatılana kadar ekranda tutar. Aksiyonu seçmek onClick'i çalıştırır ve toast'u kapatır. Aynı id'yi yeniden kullanmak, yeni bir toast eklemek yerine mevcut olanı değiştirir.

API referansı

ToastProvider

PropTipVarsayılanAçıklama
childrenReactNode–Uygulama içeriği.
durationnumber5000Varsayılan otomatik kapanma süresi, ms cinsinden.
limitnumber3Aynı anda görünen en fazla toast sayısı; en eskiler düşürülür.
labelstring"Notifications"Bildirim bölgesinin erişilebilir adı. Türkçe arayüzde Türkçe bir değer ver, örneğin "Bildirimler".

useToast()

ToastApi döndürür. ToastProvider dışında çağrılırsa hata fırlatır.

PropTipVarsayılanAçıklama
toast(options: ToastOptions) => string–Bir toast gösterir ve id'sini döndürür.
dismiss(id?: string) => void–Verilen id'deki toast'u kaldırır; id verilmezse tüm toast'ları kaldırır.

ToastOptions

PropTipVarsayılanAçıklama
titleZorunluReactNode–Kısa başlık.
descriptionReactNode–İsteğe bağlı destekleyici metin.
tone"neutral" | "info" | "success" | "warning" | "danger""neutral"Durum noktasının rengi.
durationnumberprovider durationBu kadar ms sonra otomatik kapanır; Infinity kapatılana kadar tutar.
action{ label: string; onClick: () => void }–İsteğe bağlı aksiyon butonu.
idstring–Mevcut bir toast'u değiştirmek için aynı id'yi kullan; zamanlayıcısı yeni `duration` ile baştan başlar.

Stil verme

SınıfEleman
.mrd-toast-region, .mrd-toast-region__listBölge ve live liste
.mrd-toastTek bir toast
.mrd-toast__dotDurum noktası
.mrd-toast__body, .mrd-toast__title, .mrd-toast__descriptionMetin
.mrd-toast__actionAksiyon butonu
.mrd-toast__closeKapatma butonu
AttributeNeredeDeğerler
data-tone.mrd-toastneutral, info, success, warning, danger

Erişilebilirlik

Toast'lar WAI-ARIA alert desenini polite biçimiyle izler: liste, etiketli bir <section> içindeki aria-live="polite" bölgesidir; yeni toast'lar araya girmeden duyurulur. İşaretçi bir toast'un üzerindeyken ya da focus içindeyken otomatik kapanma zamanlayıcısı durur.

TuşNe yapar
TabGörünen toast'ların aksiyon ve kapatma butonlarına ulaşır.
EnterFocus'taki aksiyon ya da kapatma butonunu çalıştırır.
SpaceFocus'taki aksiyon ya da kapatma butonunu çalıştırır.

Kullanım ilkeleri

Yap

Kişinin az önce yaptığı bir aksiyonu birkaç kelimeyle onayla: “Değişiklikler kaydedildi”.

Kaçın

Kişinin ekranda değiştiğini zaten gördüğü bir şey için toast göstermek.

Yap

Geri alınabilen yıkıcı aksiyonlarda Geri al seçeneği sun ve o toast'u kapatılana kadar tut.

Kaçın

Tek bir olay için birkaç toast üst üste dizmek ya da uzun açıklamalar kullanmak.

İlgili sayfalar