SHA256
Первая версия вложенных файлов работает
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user