Thème
Superviseur — Frontend / features/settings/useSettings / useSettings
Fonction: useSettings()
ts
function useSettings(): object;Défini dans: features/settings/useSettings.ts:40
Retourne
| Nom | Type | Description | Défini dans |
|---|---|---|---|
store | Store<"settings", Pick<{ settings: Ref<object[], | SystemSetting[] | object[]>; loading: Ref<boolean, boolean>; error: Ref<string | null, string | null>; fetchSettings: () => Promise<void>; updateSetting: (key, value) => Promise<void>; seedDefaults: () => Promise<void>; }, "error" | "settings" | "loading">, Pick<{ settings: Ref<object[], | SystemSetting[] | object[]>; loading: Ref<boolean, boolean>; error: Ref<string | null, string | null>; fetchSettings: () => Promise<void>; updateSetting: (key, value) => Promise<void>; seedDefaults: () => Promise<void>; }, never>, Pick<{ settings: Ref<object[], | SystemSetting[] | object[]>; loading: Ref<boolean, boolean>; error: Ref<string | null, string | null>; fetchSettings: () => Promise<void>; updateSetting: (key, value) => Promise<void>; seedDefaults: () => Promise<void>; }, "fetchSettings" | "updateSetting" | "seedDefaults">> | - | features/settings/useSettings.ts:304 |
globalStore | Store<"global-config", Pick<{ siteName: Ref<string, string>; logoUrl: Ref<string | null, string | null>; logoSourceUrl: Ref<string | null, string | null>; logoFraming: Ref<string | null, string | null>; getLogoSourceUrl: ComputedRef<string | null>; soundMapping: Ref<Record<string, string>, Record<string, string>>; soundVolumes: Ref<Record<string, number>, Record<string, number>>; systemParams: Ref<Record<string, unknown>, Record<string, unknown>>; isLoading: Ref<boolean, boolean>; fetchConfig: () => Promise<void>; fetchStorageInfo: () => Promise<void>; updateConfig: () => Promise<void>; uploadLogo: (file, source?, framing?) => Promise<{ url: string; sourceUrl: string | null; framing: string | null; }>; uploadSound: (type, file) => Promise<{ type: string; url: string; }>; resetSound: (type) => Promise<void>; resetLogo: () => Promise<void>; factoryReset: () => Promise<void>; cleanupOrphanedFiles: () => Promise<{ success?: boolean; deletedCount: number; spaceFreedBytes: number; errors?: string[]; }>; getSoundUrl: (type, defaultPath) => string; getUiSoundUrl: (type) => string | null; getLogoUrl: ComputedRef<string | null>; borderEnabled: ComputedRef<boolean>; alertVolume: WritableComputedRef<number, number>; setSoundVolume: (type, volume, skipPersist) => Promise<void>; storageInfo: Ref< | { dbSize: number; uploadsSize: number; totalSize: number; } | null, | { dbSize: number; uploadsSize: number; totalSize: number; } | { dbSize: number; uploadsSize: number; totalSize: number; } | null>; logVolume: Ref< | { total: number; oldest: string | null; newest: string | null; } | null, | { total: number; oldest: string | null; newest: string | null; } | { total: number; oldest: string | null; newest: string | null; } | null>; fetchLogVolume: () => Promise<void>; }, | "systemParams" | "logVolume" | "siteName" | "logoUrl" | "logoSourceUrl" | "logoFraming" | "soundMapping" | "soundVolumes" | "isLoading" | "storageInfo">, Pick<{ siteName: Ref<string, string>; logoUrl: Ref<string | null, string | null>; logoSourceUrl: Ref<string | null, string | null>; logoFraming: Ref<string | null, string | null>; getLogoSourceUrl: ComputedRef<string | null>; soundMapping: Ref<Record<string, string>, Record<string, string>>; soundVolumes: Ref<Record<string, number>, Record<string, number>>; systemParams: Ref<Record<string, unknown>, Record<string, unknown>>; isLoading: Ref<boolean, boolean>; fetchConfig: () => Promise<void>; fetchStorageInfo: () => Promise<void>; updateConfig: () => Promise<void>; uploadLogo: (file, source?, framing?) => Promise<{ url: string; sourceUrl: string | null; framing: string | null; }>; uploadSound: (type, file) => Promise<{ type: string; url: string; }>; resetSound: (type) => Promise<void>; resetLogo: () => Promise<void>; factoryReset: () => Promise<void>; cleanupOrphanedFiles: () => Promise<{ success?: boolean; deletedCount: number; spaceFreedBytes: number; errors?: string[]; }>; getSoundUrl: (type, defaultPath) => string; getUiSoundUrl: (type) => string | null; getLogoUrl: ComputedRef<string | null>; borderEnabled: ComputedRef<boolean>; alertVolume: WritableComputedRef<number, number>; setSoundVolume: (type, volume, skipPersist) => Promise<void>; storageInfo: Ref< | { dbSize: number; uploadsSize: number; totalSize: number; } | null, | { dbSize: number; uploadsSize: number; totalSize: number; } | { dbSize: number; uploadsSize: number; totalSize: number; } | null>; logVolume: Ref< | { total: number; oldest: string | null; newest: string | null; } | null, | { total: number; oldest: string | null; newest: string | null; } | { total: number; oldest: string | null; newest: string | null; } | null>; fetchLogVolume: () => Promise<void>; }, "borderEnabled" | "alertVolume" | "getLogoSourceUrl" | "getLogoUrl">, Pick<{ siteName: Ref<string, string>; logoUrl: Ref<string | null, string | null>; logoSourceUrl: Ref<string | null, string | null>; logoFraming: Ref<string | null, string | null>; getLogoSourceUrl: ComputedRef<string | null>; soundMapping: Ref<Record<string, string>, Record<string, string>>; soundVolumes: Ref<Record<string, number>, Record<string, number>>; systemParams: Ref<Record<string, unknown>, Record<string, unknown>>; isLoading: Ref<boolean, boolean>; fetchConfig: () => Promise<void>; fetchStorageInfo: () => Promise<void>; updateConfig: () => Promise<void>; uploadLogo: (file, source?, framing?) => Promise<{ url: string; sourceUrl: string | null; framing: string | null; }>; uploadSound: (type, file) => Promise<{ type: string; url: string; }>; resetSound: (type) => Promise<void>; resetLogo: () => Promise<void>; factoryReset: () => Promise<void>; cleanupOrphanedFiles: () => Promise<{ success?: boolean; deletedCount: number; spaceFreedBytes: number; errors?: string[]; }>; getSoundUrl: (type, defaultPath) => string; getUiSoundUrl: (type) => string | null; getLogoUrl: ComputedRef<string | null>; borderEnabled: ComputedRef<boolean>; alertVolume: WritableComputedRef<number, number>; setSoundVolume: (type, volume, skipPersist) => Promise<void>; storageInfo: Ref< | { dbSize: number; uploadsSize: number; totalSize: number; } | null, | { dbSize: number; uploadsSize: number; totalSize: number; } | { dbSize: number; uploadsSize: number; totalSize: number; } | null>; logVolume: Ref< | { total: number; oldest: string | null; newest: string | null; } | null, | { total: number; oldest: string | null; newest: string | null; } | { total: number; oldest: string | null; newest: string | null; } | null>; fetchLogVolume: () => Promise<void>; }, | "fetchConfig" | "factoryReset" | "fetchStorageInfo" | "updateConfig" | "uploadLogo" | "uploadSound" | "resetSound" | "resetLogo" | "cleanupOrphanedFiles" | "getSoundUrl" | "getUiSoundUrl" | "setSoundVolume" | "fetchLogVolume">> | - | features/settings/useSettings.ts:305 |
authStore | Store<"auth", Pick<{ user: Ref< | { id: string; username: string; role: string; avatar?: string; language: string; } | null, | User | { id: string; username: string; role: string; avatar?: string; language: string; } | null>; isAuthenticated: ComputedRef<boolean>; isAdmin: ComputedRef<boolean>; isSuperAdmin: ComputedRef<boolean>; isTokenExpired: ComputedRef<boolean>; setUser: (userData) => void; login: (credentials) => Promise<LoginResult>; logout: () => void; refreshAccessToken: () => Promise<boolean>; initialize: () => void; updateAvatar: (avatar) => void; resetAvatar: () => void; effectiveAvatar: ComputedRef<string | undefined>; hydrateUser: () => Promise<void>; }, "user">, Pick<{ user: Ref< | { id: string; username: string; role: string; avatar?: string; language: string; } | null, | User | { id: string; username: string; role: string; avatar?: string; language: string; } | null>; isAuthenticated: ComputedRef<boolean>; isAdmin: ComputedRef<boolean>; isSuperAdmin: ComputedRef<boolean>; isTokenExpired: ComputedRef<boolean>; setUser: (userData) => void; login: (credentials) => Promise<LoginResult>; logout: () => void; refreshAccessToken: () => Promise<boolean>; initialize: () => void; updateAvatar: (avatar) => void; resetAvatar: () => void; effectiveAvatar: ComputedRef<string | undefined>; hydrateUser: () => Promise<void>; }, | "isAuthenticated" | "isAdmin" | "isSuperAdmin" | "isTokenExpired" | "effectiveAvatar">, Pick<{ user: Ref< | { id: string; username: string; role: string; avatar?: string; language: string; } | null, | User | { id: string; username: string; role: string; avatar?: string; language: string; } | null>; isAuthenticated: ComputedRef<boolean>; isAdmin: ComputedRef<boolean>; isSuperAdmin: ComputedRef<boolean>; isTokenExpired: ComputedRef<boolean>; setUser: (userData) => void; login: (credentials) => Promise<LoginResult>; logout: () => void; refreshAccessToken: () => Promise<boolean>; initialize: () => void; updateAvatar: (avatar) => void; resetAvatar: () => void; effectiveAvatar: ComputedRef<string | undefined>; hydrateUser: () => Promise<void>; }, | "login" | "logout" | "initialize" | "setUser" | "refreshAccessToken" | "updateAvatar" | "resetAvatar" | "hydrateUser">> | - | features/settings/useSettings.ts:306 |
router | Router | - | features/settings/useSettings.ts:307 |
activeSection | Ref<string, string> | - | features/settings/useSettings.ts:308 |
openSection() | (key) => Promise<void> | Ouvre une section, après avoir réglé le sort des modifications en cours dans celle qu'on quitte. Remarks Chaque section est montée par v-if : en sortir démonte l'écran et emporte son travail. La section n'est donc changée qu'une fois la garde franchie. | features/settings/useSettings.ts:309 |
systemSoundItems | ComputedRef<SoundItem[]> | Sons système, dédupliqués par clé de son. Les sons déjà réglables dans la liste par type d'incident (même clé audio — ex. « Dérangement » couvre défaut système ET défaut de zone) sont exclus : ils se règlent une seule fois côté incident, pas de doublon ici. La section n'affiche donc que les sons réellement propres au niveau système. | features/settings/useSettings.ts:310 |
incidentSoundItems | ComputedRef<SoundItem[]> | Sons d'incident configurables : union dédupliquée, par clé de son, des incidents de tous les modèles de centrale. Les sons sont sémantiques (alarme, évacuation, défaut…) et partagés par tous les modèles ; volume et fichier se règlent donc une seule fois, quelle que soit la centrale. | features/settings/useSettings.ts:311 |
handleFactoryReset() | () => Promise<void> | - | features/settings/useSettings.ts:312 |
handleCleanup() | () => Promise<void> | - | features/settings/useSettings.ts:313 |
sections | ComputedRef<object[]> | - | features/settings/useSettings.ts:314 |
updateSystemParam() | (key, value) => Promise<void> | - | features/settings/useSettings.ts:315 |
handleLogoFramed() | (payload) => Promise<void> | Enregistre un logo sortant de l'éditeur de cadrage : le rendu affiché, accompagné de l'image d'origine et du cadre retenu, qui permettront de rouvrir l'éditeur sans redéposer le fichier. | features/settings/useSettings.ts:316 |
handleVolumeChange() | (event) => Promise<void> | - | features/settings/useSettings.ts:317 |
oldestLogDate | ComputedRef<string> | Date de la plus ancienne entrée du journal, formatée pour l'affichage (ou tiret si vide). | features/settings/useSettings.ts:318 |
formatSize() | (bytes) => string | - | features/settings/useSettings.ts:319 |
isCompact | Readonly<Ref<boolean, boolean>> | - | features/settings/useSettings.ts:320 |