Files
SHiNE-server/shine-UI/js/services/feature-settings.js
T

44 lines
1.2 KiB
JavaScript

const STORAGE_KEYS = Object.freeze({
developerTools: 'shine-feature-developer-tools-v1',
dmFileTransfer: 'shine-feature-dm-file-transfer-v1',
});
function readBoolean(key, defaultValue = true) {
try {
const raw = localStorage.getItem(key);
if (raw == null) return Boolean(defaultValue);
return raw !== '0' && raw !== 'false';
} catch {
return Boolean(defaultValue);
}
}
function writeBoolean(key, enabled) {
const value = Boolean(enabled);
try {
localStorage.setItem(key, value ? '1' : '0');
} catch {
// В приватном режиме/при запрете storage оставляем значение только на уровне default.
}
window.dispatchEvent(new CustomEvent('shine-feature-settings-updated', {
detail: { key, enabled: value },
}));
return value;
}
export function isDeveloperToolsEnabled() {
return readBoolean(STORAGE_KEYS.developerTools, true);
}
export function setDeveloperToolsEnabled(enabled) {
return writeBoolean(STORAGE_KEYS.developerTools, enabled);
}
export function isDmFileTransferEnabled() {
return readBoolean(STORAGE_KEYS.dmFileTransfer, true);
}
export function setDmFileTransferEnabled(enabled) {
return writeBoolean(STORAGE_KEYS.dmFileTransfer, enabled);
}