Config

useConfig

Composable per accedere e modificare la configurazione completa della libreria (icone + locale).

Firma TypeScript

export function useConfig(): UseConfigResult

export interface UseConfigResult {
  icons: ComputedRef<ComponentIcons>;
  translations: ComputedRef<ComponentLocale>;
  locale: ComputedRef<SupportedLocale>;
  t: (key: string, params?: Record<string, string | number>) => string;
  setIcons: (newIcons: DeepPartial<ComponentIcons>) => void;
  switchIconSet: (preset: IconPreset) => void;
  switchLanguage: (lang: LanguagePreset) => Promise<void>;
  config: PzetaConfig | null;
}

export type IconPreset = 'primeicons' | 'lucide' | 'fontawesome'
export type LanguagePreset = SupportedLocale  // 'it' | 'en' | ...

Parametri

Nessun parametro.

Valore di Ritorno

ProprietàTipoDescrizione
iconsComputedRef<ComponentIcons>Configurazione icone corrente (reattiva)
translationsComputedRef<ComponentLocale>Traduzioni correnti per la locale attiva
localeComputedRef<SupportedLocale>Lingua corrente
t(key: string, params?) => stringFunzione di traduzione
setIcons(newIcons: DeepPartial<ComponentIcons>) => voidAggiornamento parziale icone
switchIconSet(preset: IconPreset) => voidSwitch completo a un preset icone (primeicons, lucide, fontawesome)
switchLanguage(lang: LanguagePreset) => Promise<void>Cambio lingua asincrono
configPzetaConfig | nullAccesso diretto all'oggetto config (null se ConfigPlugin non installato)

Esempio

import { useConfig } from '@pzeta/vue-components'

const { icons, locale, switchIconSet, switchLanguage } = useConfig()

// Switch a Lucide icons
switchIconSet('lucide')

// Switch a English
await switchLanguage('en')

// Accesso diretto alle icone
const closeIcon = icons.value.common.close

Prerequisiti

Richiede ConfigPlugin installato nell'app Vue per icone reattive. Per la localizzazione, richiede @pzeta/vue-i18n configurato. Se il ConfigPlugin non è installato, usa i valori di default (primeicons + lingua di default).

// main.ts
import { ConfigPlugin } from '@pzeta/vue-components'
app.use(ConfigPlugin, { icons: lucideIcons })

Note

  • setIcons esegue un deep assign che preserva la reattività Vue (non sostituisce l'oggetto, aggiorna le proprietà in-place).
  • switchIconSet supporta i preset built-in: primeicons (default), lucide, fontawesome.
  • switchLanguage è asincrono perché carica il file di traduzione lazy.
  • Per accedere alle sole icone senza le funzionalità i18n, preferire useIcons.