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à | Tipo | Descrizione |
|---|---|---|
icons | ComputedRef<ComponentIcons> | Configurazione icone corrente (reattiva) |
translations | ComputedRef<ComponentLocale> | Traduzioni correnti per la locale attiva |
locale | ComputedRef<SupportedLocale> | Lingua corrente |
t | (key: string, params?) => string | Funzione di traduzione |
setIcons | (newIcons: DeepPartial<ComponentIcons>) => void | Aggiornamento parziale icone |
switchIconSet | (preset: IconPreset) => void | Switch completo a un preset icone (primeicons, lucide, fontawesome) |
switchLanguage | (lang: LanguagePreset) => Promise<void> | Cambio lingua asincrono |
config | PzetaConfig | null | Accesso 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
setIconsesegue un deep assign che preserva la reattività Vue (non sostituisce l'oggetto, aggiorna le proprietà in-place).switchIconSetsupporta 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.