Lewati ke konten

useDrawer

Membuka panel drawer secara programatik dari mana saja.

useDrawer() mencerminkan useModal persis, untuk <SDrawer> - panel yang meluncur masuk dari tepi layar, dapat di-drag dan sadar snap-point, alih-alih dialog terpusat.

Penggunaan

vue
<script setup lang="ts">
const { open } = useDrawer()

async function handleFilters() {
  const applied = await open(FilterPanel, {
    props: { category: 'shoes' },
    side: 'bottom',
  })
}
</script>

API

ts
function useDrawer(): {
  open: <T = void>(component: Component, options?: UseDrawerOpenOptions) => Promise<T | undefined>
}

UseDrawerOpenOptions

Opsi yang sama seperti useModal, plus beberapa lagi yang unik untuk panel yang dapat di-drag dan sadar snap-point:

OpsiTipeDeskripsi
side'top' | 'right' | 'bottom' | 'left'Tepi mana panel meluncur masuk.
handlebooleanApakah bilah grip tampil di atas, menandakan ia dapat di-drag.
snapPoints(number | string)[]Tinggi/lebar istirahat yang ditempati panel saat di-drag - fraksi (0-1), piksel (>1), atau string panjang CSS.
snapPointnumber | string | nullSnap point yang sedang aktif.
snapToSequentialPointsbooleanSnap ke titik berurutan berikutnya satu langkah setiap kali, alih-alih yang terdekat berdasarkan jarak drag.
modalboolean | 'trap-focus''trap-focus' menjebak fokus tetapi mengizinkan event pointer luar - lihat Drawer.
props, title, description, dismissible, overlay, transitionSama seperti useModal.

Penyiapan

Sama seperti useModal - bungkus root aplikasi Anda dengan <SApp> sekali dan useDrawer() berfungsi di mana saja di bawahnya.