import { createTopBar } from '../components/topbar.js'; import { isDeveloperToolsEnabled, isDmFileTransferEnabled, setDeveloperToolsEnabled, setDmFileTransferEnabled, } from '../services/feature-settings.js'; export const pageMeta = { id: 'advanced-settings-view', title: 'Дополнительные настройки' }; function createToggleRow({ id, title, hint, checked }) { const label = document.createElement('label'); label.className = 'card settings-feature-toggle-row'; label.htmlFor = id; label.innerHTML = ` ${title} ${hint} `; return label; } export function render({ navigate, chrome }) { const screen = document.createElement('section'); screen.className = 'stack advanced-settings-screen'; chrome?.setTopbar(createTopBar({ title: 'Дополнительные настройки', back: { label: '←', onClick: () => navigate('settings-view') }, })); const intro = document.createElement('div'); intro.className = 'card stack advanced-settings-intro'; intro.innerHTML = `

Скрытые возможности SHiNE

Этот экран открывается пятью быстрыми нажатиями по логотипу в обычных настройках и имеет постоянный адрес /settings/advanced.

`; const developerRow = createToggleRow({ id: 'advanced-developer-tools', title: 'Настройки разработчика', hint: 'Показывать блок «Версии» и кнопку настроек разработчика в обычных настройках.', checked: isDeveloperToolsEnabled(), }); const filesRow = createToggleRow({ id: 'advanced-dm-files', title: 'Передача файлов в личных сообщениях', hint: 'Разрешить отправку новых зашифрованных файлов через удержание кнопки эмодзи. Полученные ранее файлы останутся доступными.', checked: isDmFileTransferEnabled(), }); const developerInput = developerRow.querySelector('#advanced-developer-tools'); const filesInput = filesRow.querySelector('#advanced-dm-files'); developerInput?.addEventListener('change', () => setDeveloperToolsEnabled(developerInput.checked)); filesInput?.addEventListener('change', () => setDmFileTransferEnabled(filesInput.checked)); screen.append(intro, developerRow, filesRow); return screen; }