diff options
Diffstat (limited to 'devtools/client/inspector/grids/reducers/highlighter-settings.js')
-rw-r--r-- | devtools/client/inspector/grids/reducers/highlighter-settings.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/devtools/client/inspector/grids/reducers/highlighter-settings.js b/devtools/client/inspector/grids/reducers/highlighter-settings.js new file mode 100644 index 0000000000..3568390df6 --- /dev/null +++ b/devtools/client/inspector/grids/reducers/highlighter-settings.js @@ -0,0 +1,54 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const { + UPDATE_SHOW_GRID_AREAS, + UPDATE_SHOW_GRID_LINE_NUMBERS, + UPDATE_SHOW_INFINITE_LINES, +} = require("resource://devtools/client/inspector/grids/actions/index.js"); + +const SHOW_GRID_AREAS = "devtools.gridinspector.showGridAreas"; +const SHOW_GRID_LINE_NUMBERS = "devtools.gridinspector.showGridLineNumbers"; +const SHOW_INFINITE_LINES = "devtools.gridinspector.showInfiniteLines"; + +const INITIAL_HIGHLIGHTER_SETTINGS = () => { + return { + showGridAreasOverlay: Services.prefs.getBoolPref(SHOW_GRID_AREAS), + showGridLineNumbers: Services.prefs.getBoolPref(SHOW_GRID_LINE_NUMBERS), + showInfiniteLines: Services.prefs.getBoolPref(SHOW_INFINITE_LINES), + }; +}; + +const reducers = { + [UPDATE_SHOW_GRID_AREAS](highlighterSettings, { enabled }) { + return Object.assign({}, highlighterSettings, { + showGridAreasOverlay: enabled, + }); + }, + + [UPDATE_SHOW_GRID_LINE_NUMBERS](highlighterSettings, { enabled }) { + return Object.assign({}, highlighterSettings, { + showGridLineNumbers: enabled, + }); + }, + + [UPDATE_SHOW_INFINITE_LINES](highlighterSettings, { enabled }) { + return Object.assign({}, highlighterSettings, { + showInfiniteLines: enabled, + }); + }, +}; + +module.exports = function ( + highlighterSettings = INITIAL_HIGHLIGHTER_SETTINGS(), + action +) { + const reducer = reducers[action.type]; + if (!reducer) { + return highlighterSettings; + } + return reducer(highlighterSettings, action); +}; |