/** * LocalStorage Management * Handles persistence of user preferences */ import { userPreferences } from './state.js'; const STORAGE_KEY = 'acoCalcPreferences'; /** * Load preferences from localStorage * @returns {boolean} Success status */ export function loadPreferences() { try { const saved = localStorage.getItem(STORAGE_KEY); if (saved) { const parsed = JSON.parse(saved); Object.assign(userPreferences, parsed); console.log('✅ Preferências carregadas:', userPreferences); return true; } return false; } catch (error) { console.warn('⚠️ Não foi possível carregar preferências:', error); return false; } } /** * Save preferences to localStorage * @returns {boolean} Success status */ export function savePreferences() { try { localStorage.setItem(STORAGE_KEY, JSON.stringify(userPreferences)); console.log('✅ Preferências salvas'); return true; } catch (error) { console.warn('⚠️ Não foi possível salvar preferências:', error); return false; } } /** * Clear all preferences * @returns {boolean} Success status */ export function clearPreferences() { try { localStorage.removeItem(STORAGE_KEY); console.log('✅ Preferências limpas'); return true; } catch (error) { console.warn('⚠️ Não foi possível limpar preferências:', error); return false; } } /** * Get storage size in bytes * @returns {number} Size in bytes */ export function getStorageSize() { try { const data = localStorage.getItem(STORAGE_KEY); return data ? new Blob([data]).size : 0; } catch (error) { return 0; } } /** * Check if localStorage is available * @returns {boolean} Availability status */ export function isStorageAvailable() { try { const test = '__storage_test__'; localStorage.setItem(test, test); localStorage.removeItem(test); return true; } catch (error) { return false; } }