All files / src/hooks useSettings.ts

100% Statements 25/25
100% Branches 0/0
100% Functions 0/0
100% Lines 25/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 261x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * @file useSettings.ts
 * @description
 * Custom hook for accessing global settings context.
 * Provides type-safe access to user preferences and system info throughout the app.
 *
 * @usage
 * import { useSettings } from '../hooks/useSettings'
 * const { userPreferences, systemInfo } = useSettings()
 */
 
import { SettingsContext, type SettingsContextType } from '../context/settings/SettingsContext';
import { createContextHook } from './createContextHook';
 
/**
 * Access global settings context from anywhere in the component tree.
 * Must be used within a component wrapped by SettingsProvider.
 * @returns Settings context with preferences, system info, and utility functions
 * @throws Error if used outside SettingsProvider
 * @example
 * const { userPreferences, systemInfo, setUserPreferences } = useSettings()
 * console.log(userPreferences.dateFormat)  // → 'DD.MM.YYYY'
 * console.log(systemInfo.database)         // → 'Oracle ADB'
 */
export const useSettings = createContextHook<SettingsContextType>(SettingsContext, 'useSettings');