Работа над ночным режимом
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import _ from 'lodash';
|
||||
import * as utils from '../../share/utils';
|
||||
import googleFonts from './fonts/fonts.json';
|
||||
|
||||
@@ -21,6 +22,7 @@ const readerActions = {
|
||||
'copyText': 'Скопировать текст со страницы',
|
||||
'convOptions': 'Настроить конвертирование',
|
||||
'refresh': 'Принудительно обновить книгу',
|
||||
'nightMode': 'Ночной режим',
|
||||
'clickControl': 'Управление кликом',
|
||||
'offlineMode': 'Автономный режим (без интернета)',
|
||||
'contents': 'Оглавление/закладки',
|
||||
@@ -57,6 +59,7 @@ const toolButtons = [
|
||||
{name: 'contents', show: true},
|
||||
{name: 'libs', show: true},
|
||||
{name: 'recentBooks', show: true},
|
||||
{name: 'nightMode', show: true},
|
||||
{name: 'clickControl', show: true},
|
||||
{name: 'offlineMode', show: true},
|
||||
];
|
||||
@@ -80,6 +83,7 @@ const hotKeys = [
|
||||
{name: 'contents', codes: ['C']},
|
||||
{name: 'libs', codes: ['L']},
|
||||
{name: 'recentBooks', codes: ['X']},
|
||||
{name: 'nightMode', codes: ['Equal']},
|
||||
{name: 'clickControl', codes: ['Ctrl+B']},
|
||||
{name: 'offlineMode', codes: ['O']},
|
||||
|
||||
@@ -320,7 +324,7 @@ const state = {
|
||||
whatsNewContentHash: '',
|
||||
donationNextPopup: Date.now() + dayMs*30,
|
||||
currentProfile: '',
|
||||
settings: Object.assign({}, settingDefaults),
|
||||
settings: _.cloneDeep(settingDefaults),
|
||||
settingsRev: {},
|
||||
libs: false,
|
||||
libsRev: 0,
|
||||
@@ -365,14 +369,30 @@ const mutations = {
|
||||
state.currentProfile = value;
|
||||
},
|
||||
setSettings(state, value) {
|
||||
const newSettings = Object.assign({}, state.settings, value);
|
||||
let newSettings = Object.assign({}, state.settings, value);
|
||||
|
||||
//при смене профиля подгружаются старые настройки, могут отсутствовать атрибуты
|
||||
//поэтому:
|
||||
const added = addDefaultsToSettings(newSettings);
|
||||
if (added)
|
||||
newSettings = added;
|
||||
|
||||
state.settings = newSettings;
|
||||
},
|
||||
nightModeToggle(state) {
|
||||
//переключение режима день-ночь
|
||||
const prevNightMode = state.settings.nightMode;
|
||||
if (utils.hasProp(value, 'nightMode') && prevNightMode != value.nightMode) {
|
||||
saveColorSets(prevNightMode, newSettings);
|
||||
restoreColorSets(newSettings.nightMode, newSettings);
|
||||
const newSettings = Object.assign({}, state.settings);
|
||||
|
||||
saveColorSets(newSettings.nightMode, newSettings);
|
||||
newSettings.nightMode = !newSettings.nightMode;
|
||||
|
||||
if (newSettings.nightMode && !utils.hasProp(newSettings.nightColorSets, 'textColor')) {
|
||||
// Ночной режим активирован впервые. Цвета заданы по умолчанию.
|
||||
newSettings.nightColorSets = {textColor: '#778a9e', backgroundColor: '#363131'};
|
||||
}
|
||||
|
||||
restoreColorSets(newSettings.nightMode, newSettings);
|
||||
|
||||
state.settings = newSettings;
|
||||
},
|
||||
setSettingsRev(state, value) {
|
||||
|
||||
Reference in New Issue
Block a user