From 7a85b203aca9b88a6e659987246a4b3915df2174 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 1 Oct 2017 13:37:27 +0900 Subject: load default settings --- src/actions/setting.js | 6 +++++- src/background/default-settings.js | 39 ------------------------------------ src/background/index.js | 8 +++++++- src/shared/default-settings.js | 41 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 41 deletions(-) delete mode 100644 src/background/default-settings.js create mode 100644 src/shared/default-settings.js diff --git a/src/actions/setting.js b/src/actions/setting.js index d8e889e..7898f06 100644 --- a/src/actions/setting.js +++ b/src/actions/setting.js @@ -1,9 +1,13 @@ import actions from '../actions'; import messages from '../content/messages'; +import DefaultSettings from '../shared/default-settings'; const load = () => { return browser.storage.local.get('settings').then((value) => { - return set(value.settings); + if (value.settings) { + return set(value.settings); + } + return set(DefaultSettings); }, console.error); }; diff --git a/src/background/default-settings.js b/src/background/default-settings.js deleted file mode 100644 index ea6318b..0000000 --- a/src/background/default-settings.js +++ /dev/null @@ -1,39 +0,0 @@ -export default `{ - "keymaps": { - "0": { "type": "scroll.home" }, - ":": { "type": "command.show" }, - "o": { "type": "command.show.open", "alter": false }, - "O": { "type": "command.show.open", "alter": true }, - "t": { "type": "command.show.tabopen", "alter": false }, - "T": { "type": "command.show.tabopen", "alter": true }, - "b": { "type": "command.show.buffer" }, - "k": { "type": "scroll.lines", "count": -1 }, - "j": { "type": "scroll.lines", "count": 1 }, - "": { "type": "scroll.lines", "count": -1 }, - "": { "type": "scroll.lines", "count": 1 }, - "": { "type": "scroll.pages", "count": -0.5 }, - "": { "type": "scroll.pages", "count": 0.5 }, - "": { "type": "scroll.pages", "count": -1 }, - "": { "type": "scroll.pages", "count": 1 }, - "gg": { "type": "scroll.top" }, - "G": { "type": "scroll.bottom" }, - "$": { "type": "scroll.end" }, - "d": { "type": "tabs.close" }, - "u": { "type": "tabs.reopen" }, - "h": { "type": "tabs.prev", "count": 1 }, - "l": { "type": "tabs.next", "count": 1 }, - "r": { "type": "tabs.reload", "cache": false }, - "R": { "type": "tabs.reload", "cache": true }, - "zi": { "type": "zoom.in" }, - "zo": { "type": "zoom.out" }, - "zz": { "type": "zoom.neutral" }, - "f": { "type": "follow.start", "newTab": false }, - "F": { "type": "follow.start", "newTab": true }, - "H": { "type": "navigate.history.prev" }, - "L": { "type": "navigate.history.next" }, - "[[": { "type": "navigate.link.prev" }, - "]]": { "type": "navigate.link.next" }, - "gu": { "type": "navigate.parent" }, - "gU": { "type": "navigate.root" } - } -}`; diff --git a/src/background/index.js b/src/background/index.js index 0e75a36..f2411c7 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -6,6 +6,7 @@ import * as consoleActions from '../actions/console'; import * as tabActions from '../actions/tab'; import reducers from '../reducers'; import messages from '../content/messages'; +import DefaultSettings from '../shared/default-settings'; import * as store from '../store'; let prevInput = []; @@ -58,7 +59,12 @@ const keyQueueChanged = (state, sender) => { const reloadSettings = () => { browser.storage.local.get('settings').then((value) => { - let settings = JSON.parse(value.settings.json); + let settings = null; + if (value.settings) { + settings = JSON.parse(value.settings.json); + } else { + settings = JSON.parse(DefaultSettings.json); + } let action = inputActions.setKeymaps(settings.keymaps); backgroundStore.dispatch(action); }, console.error); diff --git a/src/shared/default-settings.js b/src/shared/default-settings.js new file mode 100644 index 0000000..b186f95 --- /dev/null +++ b/src/shared/default-settings.js @@ -0,0 +1,41 @@ +export default { + json: `{ + "keymaps": { + "0": { "type": "scroll.home" }, + ":": { "type": "command.show" }, + "o": { "type": "command.show.open", "alter": false }, + "O": { "type": "command.show.open", "alter": true }, + "t": { "type": "command.show.tabopen", "alter": false }, + "T": { "type": "command.show.tabopen", "alter": true }, + "b": { "type": "command.show.buffer" }, + "k": { "type": "scroll.lines", "count": -1 }, + "j": { "type": "scroll.lines", "count": 1 }, + "": { "type": "scroll.lines", "count": -1 }, + "": { "type": "scroll.lines", "count": 1 }, + "": { "type": "scroll.pages", "count": -0.5 }, + "": { "type": "scroll.pages", "count": 0.5 }, + "": { "type": "scroll.pages", "count": -1 }, + "": { "type": "scroll.pages", "count": 1 }, + "gg": { "type": "scroll.top" }, + "G": { "type": "scroll.bottom" }, + "$": { "type": "scroll.end" }, + "d": { "type": "tabs.close" }, + "u": { "type": "tabs.reopen" }, + "h": { "type": "tabs.prev", "count": 1 }, + "l": { "type": "tabs.next", "count": 1 }, + "r": { "type": "tabs.reload", "cache": false }, + "R": { "type": "tabs.reload", "cache": true }, + "zi": { "type": "zoom.in" }, + "zo": { "type": "zoom.out" }, + "zz": { "type": "zoom.neutral" }, + "f": { "type": "follow.start", "newTab": false }, + "F": { "type": "follow.start", "newTab": true }, + "H": { "type": "navigate.history.prev" }, + "L": { "type": "navigate.history.next" }, + "[[": { "type": "navigate.link.prev" }, + "]]": { "type": "navigate.link.next" }, + "gu": { "type": "navigate.parent" }, + "gU": { "type": "navigate.root" } + } +}` +}; -- cgit v1.2.3