نظرة عامة
يتألفReactionButton من زر لتكوين تفاعل إيموجي مدمج مع عدد. يوفر تطبيقك حالة الضغط والاسم المتاح ومعالج التغيير.
استخدام
المظهر
يبلغ ارتفاع عنصر التحكم 24px، وله زوايا مستديرة وإيموجي بحجم 16px وعدد صغير. تستخدم التفاعلات المضغوطة سطح التمييز ونصه الخاصين بالسمة. تستخدم التفاعلات غير المضغوطة سطحا شفافا ونصا ثانويا. يقبلcount رقما أو سلسلة نصية منسقة بواسطة المستدعي. يتولى تطبيقك تنسيق الأرقام واختصارها وتحديد ما إذا كان سيعرض تفاعلا بعدد صفري.
ملكية الحالة
pressed مطلوب ويتحكم به تطبيقك. يستدعي التنشيط onPressedChange بالقيمة التالية المطلوبة. يستمر المكون في عرض قيمتي pressed وcount الموفرين إلى أن يحدّثهما تطبيقك.
عيّن loading أثناء انتظار طفرة لعرض مؤشر تحميل Button ومنع التنشيط المتكرر. يحافظ على قيمة pressed الموفرة ويضع علامة انشغال على عنصر التحكم. استخدم disabled عندما يكون التفاعل غير متاح. يبقى الاختيار والأعداد والأذونات والاستمرارية وأي تحديثات تفاؤلية في التطبيق.
يعمل onClick الأصلي قبل طلب التغيير. يؤدي استدعاء event.preventDefault() في ذلك المعالج إلى إلغاء الطلب. تُمرر سمات الزر الأصلية الأخرى ومعالجاته وأنماطه وأسماء فئاته ومراجعه إلى الزر. يستخدم عنصر التحكم دائما type="button".
إمكانية الوصول وتلميحات الأدوات
وفّرaria-label أو aria-labelledby مع اسم تفاعل مترجم محليا. الإيموجي والعدد للزينة ومخفيان عن التقنية المساعدة، لذا ضمّن معلومات العدد أو المشاركين في الاسم أو الوصف الموفّر عند الحاجة. حافظ على استقرار اسم التفاعل عند تغير حالته؛ إذ يعبّر aria-pressed عن الاختيار.
يدعم الزر الأصلي تركيز Tab والتنشيط باستخدام Enter أو Space. يمنع كل من disabled وloading التنشيط. يشير المرجع إلى الزر الأصلي.
استخدم تلميح الأدوات لتفاصيل المشاركين عند التمرير والتركيز باستخدام لوحة المفاتيح، كما هو موضح أعلاه، أو مرّر title أصليا. ينتمي محتوى تلميح الأدوات إلى المستدعي ولا يحل محل الاسم المتاح. لا تؤدي التسميات الطويلة المتاحة إلى تكبير عنصر التحكم المرئي.
الإزاحة
string
Accessible name describing the reaction. Required unless
aria-labelledby supplies the name.string
ID of the element supplying the accessible name. Can be used instead of
aria-label.string | number
مطلوب
Displayed count. Pass a string for localized or abbreviated formatting. Hidden from assistive technology.
boolean
افتراضي:"false"
Disables the native button and prevents activation.
string
مطلوب
Emoji displayed beside the count. Hidden from assistive technology.
boolean
افتراضي:"false"
Shows a loading indicator, sets
aria-busy, and prevents activation without changing the supplied pressed state.MouseEventHandler<HTMLButtonElement>
Native click handler called before
onPressedChange. Calling preventDefault() cancels the change request.(pressed: boolean) => void
مطلوب
Requests the next pressed state after activation. The caller updates
pressed and count.boolean
مطلوب
Controlled selection state. Sets the selected appearance and
aria-pressed.string
Optional native tooltip text supplied by the caller.