انتقل إلى المحتوى
TopClass UI

إشعار

إشعار قصير بأن شيئًا حدث. يظهر في زاوية ويغادر وحده، وفيه دائمًا زر إغلاق، لأن السحب بالإصبع حركة جرّ.

client - الحجم لم يُقَس بعد

إشعار

client - الحجم لم يُقَس بعد

إشعار قصير بأن شيئًا حدث. يظهر في زاوية ويغادر وحده، وفيه دائمًا زر إغلاق، لأن السحب بالإصبع حركة جرّ.

تثبيت

جرّبه

tone
duration
priority

الشيفرة

toast.tsx
'use client'

import { Button } from 'topclassui/button'
import { toast } from 'topclassui/toast'
import type { ToastDesignProps } from 'topclassui/toast'

/** The docs stage: the Try it controls set the options of the toast the press adds. */
export default function Demo(props: ToastDesignProps = {}) {
  return (
    <Button
      variant="outline"
      onClick={() => { toast.add({ ...props, title: 'Project created', description: 'It is ready for its first deploy.' }) }}
    >
      Show a toast
    </Button>
  )
}

TopClassProvider يركّب منطقة العرض الوحيدة، فلا شيء عليك تركيبه؛ وtoast.add يعمل من أي وحدة في المتصفح، داخل React أو خارجه.

كل الحالات، بدون تمرير الفأرة

11 حالة

أو استورده من الحزمة

topclassui/toast
import { Toast } from 'topclassui/toast'

ثبّت مرة واحدة:npm i topclassui@beta zod

أمثلة

  • toast أربع دوال عادية: add وupdate وclose وpromise. الجدول يسرد خيارات toast.add لا خصائص مكوّن؛ وتأخذ أيضًا عنوانًا إلزاميًا ووصفًا وإجراءً واحدًا.
  • duration محصورة بين 0 و600000 ملّي ثانية، والقيمة 0 تُبقيه حتى يُغلق. إن لم تُمرَّر طُبّقت مدة المزوّد: 5000 ما لم يحدد TopClassProvider غيرها.
  • الإجراء لا يغلق الإشعار: استدعِ toast.close(id) داخله، بالمعرّف الذي أعاده add. وtoast.close() بلا معرّف يغلقها كلها.
  • toast.promise يعرض إشعارًا واحدًا: مؤشر تحميل، ثم أيقونة النجاح أو الخطأ ونصه. ويعيد الوعد نفسه، بما في ذلك رفضه، فالتقطه.
  • الموضع والحد الأقصى والمدة تُضبط مرة واحدة على المزوّد. أحدث إشعار هو الأقرب إلى الحافة، وتظهر ثلاثة معًا؛ ويظهر التالي عندما يُغلق أحدها.
with-description
basic
tones
with-action
promise
sticky
high-priority
many
over-dialog
long-content
بالعربية، من اليمين إلى اليسار

الخصائص

خصائص Toast
الخاصيةالنوعالافتراضيالحدودالوصف
durationnumber, min 0, max 600000-min 0, max 600000toast.add: milliseconds before it closes itself, clamped; 0 stays until closed; left out, the provider duration applies.
prioritylow | high"low"-toast.add: high is announced at once, as an alert; low waits for the reader to finish.
toneprimary | neutral | success | warning | danger | info"neutral"-toast.add: what the toast means. success, warning, danger and info draw an icon; neutral and primary none.

لوحة المفاتيح وإمكانية الوصول

لوحة مفاتيح Toast
المفاتيحما يفعله
F6ينقل التركيز إلى الإشعارات.
Tabينتقل إلى الإشعار، ثم إجرائه، ثم زر إغلاقه، ثم يعود إلى حيث كنت.
Escapeيغلق الإشعار الذي يحمل التركيز. إغلاق آخرها يعيد التركيز إلى حيث وجده F6.
  • منطقة العرض منطقة حية مهذّبة يسمّيها labels.toast.region. أما priority="high" فيُقرأ فورًا كتنبيه: احتفظ به لما لا يحتمل الانتظار.
  • ينتهي كل إشعار بزر إغلاق لا يُزال أبدًا: السحب حركة جرّ، والجرّ يحتاج إلى طريقة ثانية (WCAG 2.5.7).
  • تتوقف المؤقتات ما دام المؤشر فوق الإشعارات، وما دام أحدها يحمل التركيز، وما دامت النافذة في الخلفية. وفوق حوار نمطي يبقى Tab داخل الحوار ويصل F6 إلى الإشعار.

من اليمين إلى اليسار

الموضع الافتراضي bottom-end هو أسفل اليمين في الإنجليزية وأسفل اليسار في العربية، والسحب الجانبي يتبع الحافة التي يجلس عندها الإشعار. والجزيرة العربية داخل صفحة إنجليزية تعرض إشعاراتها في زاوية الصفحة وبلغتها.

الخادم والمتصفح

مكوّن متصفح: يُعرض على الخادم ثم يُرطَّب في المتصفح.

الملفات: index.tsx, client.tsx.

على الشارة: client - الحجم لم يُقَس بعد.