Composable Fonksiyonlari
Proje composable'lari resources/js/composables/ altinda yer alir ve @/composables uzerinden tekrar export edilir.
Temel istek ve dialog yardimcilari
useApi()
Projenin to_api() / ApiResponse JSON yapisina gore hazirlanmis kucuk bir fetch() sarmalayicisidir.
Accept: application/jsonveX-Requested-With: XMLHttpRequestheader'larini ekler- Uygunsa
X-XSRF-TOKENheader'ini ekler datapayload'ini dogrudan cozer- Basarisiz cevaplarda
ApiErrorfirlatir toast: falseverilmezse PrimeVue toast hata mesaji gosterebilir
const api = useApi();
const user = await api.get<User>('/api/v1/users/1');
await api.post('/api/v1/users', { name: 'John Doe' });
await api.delete('/api/v1/users/1');
useConfirm()
PrimeVue ConfirmationService uzerine kurulmus iki yardimci dondurur:
confirmDelete(onAccept, message?, icon?)confirmAction({ message, onAccept, header?, icon?, acceptLabel?, rejectLabel?, acceptClass? })
const { confirmDelete, confirmAction } = useConfirm();
confirmDelete(() => {
console.log('Silme onaylandi');
});
confirmAction({
message: 'Bu kaydi simdi yayinlamak istiyor musun?',
acceptLabel: 'Yayinla',
onAccept: () => console.log('Onaylandi'),
});
useDialog()
@lvntr/components/ui/AppDialog.vue ile birlikte calisan global dialog yoneticisidir.
open(component, props?, header?, options?)openAsync(component, url, header?, options?, baseProps?)close()
refreshKey verilirse onSuccess ve onCancel callback'leri otomatik eklenir.
Yetki ve gezinme yardimcilari
useCan()
Inertia shared props icindeki permission ve role verilerini okur.
can(permission)canAny(permissions)hasRole(role)
useUrlTab()
Sekme secimini ?tab=security gibi bir query string anahtari ile senkron tutar.
useRefreshBus()
Ozellikle DataTable gibi bilesenler icin kullanilan basit bir global yenileme bus'idir.
tsconst bus = useRefreshBus();
bus.on('users-table', () => fetchData());
bus.refresh('users-table');
UI state yardimcilari
useDarkMode()
Dark mode tercihini local storage'da saklar ve <html> uzerinde .dark sinifini degistirir.
usePageLoading()
inertia:start ve inertia:finish tarayici event'leri ile sayfa gecis durumunu izler.
useFlash()
Inertia shared props icindeki flash verisini reactive olarak sunar.
Bu projede flash mesajlar composable icinde degil, AdminLayout.vue icinde toast olarak gosterilir.
Enum ve definition yardimcilari
useEnum()
Backend tarafindan Inertia ile paylasilan enum verilerini okur.
list(key)options(key)find(key, value)
useDefinition()
Veritabani tabanli tanimlari /definitions endpoint'inden yukler ve reactive olarak cache'ler.
load(keys)loadAll()list(key)options(key)find(key, value)clearCache()
PHP enum verileri icin useEnum(), definitions servisinden gelen kayitlar icin useDefinition() kullanilmalidir.