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àTipoDescrizione
require(options: ConfirmationOptions) => voidApre il dialog di conferma con le opzioni specificate
close() => voidChiude il dialog di conferma attualmente aperto

ConfirmationOptions (principali campi)

CampoTipoDescrizione
messagestringTesto del messaggio di conferma
headerstringTitolo del dialog
iconstringClasse icona (es. pi pi-exclamation-triangle)
severitystringSeverity visiva (warn, danger, info, ecc.)
acceptLabelstringTesto pulsante conferma (default: "Si")
rejectLabelstringTesto pulsante annulla (default: "No")
accept() => voidCallback eseguita alla conferma
reject() => voidCallback 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à:

  1. Pattern globale (preferito): <ConfirmDialog /> montato in App.vue, registra automaticamente il servizio globale.
  2. Pattern inject/provide: ConfirmService fornito nella catena di antenati tramite ConfirmServiceKey.
<!-- App.vue -->
<template>
  <ConfirmDialog />
  <RouterView />
</template>

Note

  • Se il servizio non è disponibile, emette un console.warn invece di lanciare errore (a differenza di useToast).
  • Il proxy sul servizio globale garantisce che le chiamate funzionino anche se useConfirm() viene invocato prima del mount del componente.
  • Funzioni helper setGlobalConfirmService e getGlobalConfirmService sono esportate per uso interno della libreria.