refactor: corrige duplicações e código morto
- Remove Toast Manager duplicado (core/toast-manager.js) - Unifica loadPreferences/savePreferences de app.js para state.js - Unifica adminConfig de app.js para state.js - Remove código morto (if false block) - Adiciona checkStorage para validar localStorage
This commit is contained in:
@@ -15,13 +15,34 @@ export const appState = {
|
||||
};
|
||||
|
||||
// User preferences (persisted to localStorage)
|
||||
export const userPreferences = {
|
||||
export let userPreferences = {
|
||||
theme: 'dark',
|
||||
colorScheme: 'default', // default, blue, green, purple, orange
|
||||
fontSize: 'medium', // small, medium, large, xlarge
|
||||
fontFamily: 'default' // default, modern, classic, mono
|
||||
colorScheme: 'default',
|
||||
fontSize: 'medium',
|
||||
fontFamily: 'default'
|
||||
};
|
||||
|
||||
// Load preferences from localStorage
|
||||
export function loadPreferences() {
|
||||
try {
|
||||
const saved = localStorage.getItem('acoCalcPreferences');
|
||||
if (saved) {
|
||||
userPreferences = { ...userPreferences, ...JSON.parse(saved) };
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('Não foi possível carregar preferências:', e);
|
||||
}
|
||||
}
|
||||
|
||||
// Save preferences to localStorage
|
||||
export function savePreferences() {
|
||||
try {
|
||||
localStorage.setItem('acoCalcPreferences', JSON.stringify(userPreferences));
|
||||
} catch (e) {
|
||||
console.warn('Não foi possível salvar preferências:', e);
|
||||
}
|
||||
}
|
||||
|
||||
// Admin configuration
|
||||
export const adminConfig = {
|
||||
appName: 'SteelBase',
|
||||
@@ -89,3 +110,26 @@ export function updatePreference(key, value) {
|
||||
export function getPreference(key) {
|
||||
return userPreferences[key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if localStorage is available and has space
|
||||
* @returns {object} Storage status
|
||||
*/
|
||||
export function checkStorage() {
|
||||
try {
|
||||
const testKey = '__storage_test__';
|
||||
localStorage.setItem(testKey, testKey);
|
||||
localStorage.removeItem(testKey);
|
||||
|
||||
let totalSize = 0;
|
||||
for (let key in localStorage) {
|
||||
if (localStorage.hasOwnProperty(key)) {
|
||||
totalSize += localStorage[key].length * 2;
|
||||
}
|
||||
}
|
||||
|
||||
return { available: true, usedBytes: totalSize };
|
||||
} catch (error) {
|
||||
return { available: false, error: error.message };
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user