@akhatmirzo/ui

Switch

Darhol ta'sir qiladigan sozlamalar uchun yoqish/o'chirish tugmasi (role="switch").

Import

import { Switch } from '@akhatmirzo/ui';

Qachon ishlatish

  • Sozlama darhol kuchga kirsa — bildirishnomalar, qorong'i mavzu, do'konni ochish/yopish. Foydalanuvchi "Saqlash" ni bosishi shart emas.
  • "Saqlash" tugmasi bor formalarda Checkbox ishlating — u yerda tanlov yuborilgandagina kuchga kiradi.
  • Label holatni emas, sozlamani aytsin: "Bildirishnomalar", "Yoqilgan/O'chirilgan" emas — holatni switch'ning o'zi ko'rsatadi.
  • O'zgarish vaqt talab qilsa (serverga so'rov), natijani toast bilan bildiring yoki xatoda qiymatni qaytaring.

O'lchamlar

sm — 32×18px, md (standart) — 40×24px. Tugmacha spring animatsiyasi bilan siljiydi.

Izoh bilan

description label ostida chiqadi va aria-describedby orqali bog'lanadi.

Boshqariladigan

checked va onCheckedChange — qiymat sizning holatingizda. Boshqarilmaydigan rejim uchun defaultChecked.

Buyurtmalar qabul qilinmoqda

Holatlar

disabled — xira, bosilmaydi. invalid — trek atrofida qizil halqa, input'da aria-invalid.

Field bilan

Field ning label'i switch'ga htmlFor orqali bog'lanadi, izoh esa aria-describedby ga tushadi — Switch ning o'z label i shart emas.

Har kirishda SMS kod so'raladi

Props

Switch qolgan barcha <input> atributlarini (name, value, form, onChange ...) qabul qiladi; ref ichki <input> ga tushadi. className esa ildiz <label> ga beriladi.

PropTipStandartTavsif
checkedboolean—Boshqariladigan qiymat
defaultCheckedbooleanfalseBoshlang'ich qiymat (boshqarilmaydigan rejim)
onCheckedChange(checked: boolean) => void—Foydalanuvchi almashtirganda
labelReactNode—Switch yonidagi matn
descriptionReactNode—Label ostidagi izoh
size'sm' | 'md''md'O'lcham: 32×18 / 40×24px
invalidboolean—Xato holati (Field ichida error bo'lsa avtomatik)
disabledboolean—O'chirilgan holat
classNamestring—Ildiz <label> elementi klassi

Data atributlari

Ildiz <label> da: data-state (checked · unchecked), data-size (sm · md), data-disabled, data-invalid.

Accessibility

  • Native <input type="checkbox" role="switch"> — ekran o'quvchi "switch, yoqilgan" deb o'qiydi, Space bilan almashtiriladi, forma bilan yuboriladi.
  • Label bosilganda ham almashadi — butun komponent <label> ichida.
  • Bosish maydoni trekdan kattaroq — barmoq bilan oson tegiladi.
  • Fokus halqasi faqat klaviatura bilan kelganda chiqadi.
  • Label'siz switch uchun aria-label bering.

Sahifada