Services
useConfirm
Composable per dialog di conferma modale tramite ConfirmDialog.
Firma TypeScript
export function useConfirm(): ConfirmService
export interface ConfirmService {
require: (options: ConfirmationOptions) => void;
close: () => void;
}
Parametri
Nessun parametro. Il composable tenta prima inject(ConfirmServiceKey), poi fallback al servizio globale registrato da <ConfirmDialog />.
Valore di Ritorno
| Proprietà | Tipo | Descrizione |
|---|---|---|
require | (options: ConfirmationOptions) => void | Apre il dialog di conferma con le opzioni specificate |
close | () => void | Chiude il dialog di conferma attualmente aperto |
ConfirmationOptions (principali campi)
| Campo | Tipo | Descrizione |
|---|---|---|
message | string | Testo del messaggio di conferma |
header | string | Titolo del dialog |
icon | string | Classe icona (es. pi pi-exclamation-triangle) |
severity | string | Severity visiva (warn, danger, info, ecc.) |
acceptLabel | string | Testo pulsante conferma (default: "Si") |
rejectLabel | string | Testo pulsante annulla (default: "No") |
accept | () => void | Callback eseguita alla conferma |
reject | () => void | Callback eseguita all'annullamento |
Esempio
import { useConfirm } from '@pzeta/vue-components'
const confirm = useConfirm()
// Conferma eliminazione
const eliminaUtente = (id: number) => {
confirm.require({
message: 'Questa azione è irreversibile. Continuare?',
header: 'Elimina utente',
severity: 'danger',
acceptLabel: 'Elimina',
rejectLabel: 'Annulla',
accept: async () => {
await api.deleteUser(id)
toast.success('Utente eliminato')
}
})
}
Prerequisiti
Il componente <ConfirmDialog /> deve essere montato nell'applicazione (tipicamente in App.vue). Supporta due modalità:
- Pattern globale (preferito):
<ConfirmDialog />montato inApp.vue, registra automaticamente il servizio globale. - Pattern inject/provide:
ConfirmServicefornito nella catena di antenati tramiteConfirmServiceKey.
<!-- App.vue -->
<template>
<ConfirmDialog />
<RouterView />
</template>
Note
- Se il servizio non è disponibile, emette un
console.warninvece di lanciare errore (a differenza diuseToast). - Il proxy sul servizio globale garantisce che le chiamate funzionino anche se
useConfirm()viene invocato prima del mount del componente. - Funzioni helper
setGlobalConfirmServiceegetGlobalConfirmServicesono esportate per uso interno della libreria.