From 6083e70ea089fa2683741a1118be0e4e6b76f858 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Mon, 8 Jan 2018 21:54:16 +0900 Subject: separate setting actions and reducers --- src/shared/settings/storage.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/shared/settings/storage.js (limited to 'src/shared/settings/storage.js') diff --git a/src/shared/settings/storage.js b/src/shared/settings/storage.js new file mode 100644 index 0000000..1edb441 --- /dev/null +++ b/src/shared/settings/storage.js @@ -0,0 +1,31 @@ +import DefaultSettings from './default'; +import * as settingsValues from './values'; + +const loadRaw = () => { + return browser.storage.local.get('settings').then(({ settings }) => { + if (!settings) { + return DefaultSettings; + } + return Object.assign({}, DefaultSettings, settings); + }); +}; + +const loadValue = () => { + return loadRaw().then((settings) => { + let value = JSON.parse(DefaultSettings.json); + if (settings.source === 'json') { + value = settingsValues.valueFromJson(settings.json); + } else if (settings.source === 'form') { + value = settingsValues.valueFromForm(settings.form); + } + return value; + }); +}; + +const save = (settings) => { + return browser.storage.local.set({ + settings, + }); +}; + +export { loadRaw, loadValue, save }; -- cgit v1.2.3 From 930cd14ac1b5d25bad28084bfa953ac4a13080d1 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 14 Jan 2018 09:04:30 +0900 Subject: fix default propertiest --- src/shared/settings/storage.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/shared/settings/storage.js') diff --git a/src/shared/settings/storage.js b/src/shared/settings/storage.js index 1edb441..25ebfcd 100644 --- a/src/shared/settings/storage.js +++ b/src/shared/settings/storage.js @@ -18,7 +18,9 @@ const loadValue = () => { } else if (settings.source === 'form') { value = settingsValues.valueFromForm(settings.form); } - return value; + return Object.assign({}, + settingsValues.valueFromJson(DefaultSettings.json), + value); }); }; -- cgit v1.2.3 From 1b2a5462f35b1f864945120aa479afb5d351d9e5 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Tue, 23 Jan 2018 21:03:33 +0900 Subject: set default properties --- src/shared/settings/storage.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/shared/settings/storage.js') diff --git a/src/shared/settings/storage.js b/src/shared/settings/storage.js index 25ebfcd..9b8045d 100644 --- a/src/shared/settings/storage.js +++ b/src/shared/settings/storage.js @@ -18,6 +18,9 @@ const loadValue = () => { } else if (settings.source === 'form') { value = settingsValues.valueFromForm(settings.form); } + if (!value.properties) { + value.properties = {}; + } return Object.assign({}, settingsValues.valueFromJson(DefaultSettings.json), value); -- cgit v1.2.3