Mengikuti seretan, menahan di luar detent terbesarnya, dan berhenti sesuai kecepatan lepasan Anda; jentikan memindahkan satu detent atau menutupnya.
Seretan sentuh diserahkan ke konten yang bisa digulir: menarik ke bawah menggulir konten kembali ke atas sebelum sheet bergerak.
Detent sebagai pecahan layar, piksel, atau 'content' untuk ukuran alami konten.
Sheet modal menjaga fokus di dalamnya, membuat halaman inert, dan tertutup dengan Escape atau backdrop.
Gunakan untuk
Panel filter.
Menu berbagi.
Laci navigasi dengan side="start".
Props
Prop
Tipe
Bawaan
Deskripsi
open
boolean
false
Apakah sheet ditampilkan.
onOpenChange
(open) => void
Berjalan dengan false saat sheet ditutup dengan seretan, ketukan, atau Escape.
detents
(number | 'content')[]
['content']
Ukuran saat diam: pecahan layar, piksel, atau 'content'.
detent
number
Index detent yang dikendalikan.
defaultDetent
number
0
Index detent yang dipakai saat membuka tanpa detent.
onDetentChange
(index) => void
Berjalan dengan index detent tempat sheet berhenti.
side
'bottom' | 'top' | 'start' | 'end'
'bottom'
Tepi asal sheet.
modal
boolean
true
Menambahkan backdrop, menjaga fokus di dalam, dan membuat halaman inert.
dismissible
boolean
true
Menyeret melewati detent terkecil, backdrop, dan Escape menutupnya.
backdropClassName
string
Class untuk backdrop; backdropStyle mengatur gaya inline-nya.
transition
Transition
spring
Kurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi.
Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.
Web dan React Native
Di web, sheet modal adalah dialog native; panelnya kolom flex yang Anda beri gaya dengan className.
Di React Native, ia dirender dalam Modal transparan dan tombol kembali menutupnya. ScrollView di dalamnya mempertahankan gesturnya sendiri, jadi sheet diseret dari pegangan, header, dan area statis lainnya.