diff options
| author | Ole Bertram <git@bertr.am> | 2018-06-28 02:59:57 +0200 |
|---|---|---|
| committer | Ole Bertram <git@bertr.am> | 2018-06-28 03:28:23 +0200 |
| commit | d2b79856c61391e56009cdf313e332ee950b9081 (patch) | |
| tree | 63b8f6a5be694f670fb6b0a0bcf2d5b4c5d98466 /src | |
| parent | f36984c4a4d1411d4ec4c6aad7f2740fe676a4fa (diff) | |
Add theme import feature
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/style_switcher/style_switcher.js | 22 | ||||
| -rw-r--r-- | src/components/style_switcher/style_switcher.vue | 1 | ||||
| -rw-r--r-- | src/i18n/messages.js | 1 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/components/style_switcher/style_switcher.js b/src/components/style_switcher/style_switcher.js index d5881a31..7ab56ea2 100644 --- a/src/components/style_switcher/style_switcher.js +++ b/src/components/style_switcher/style_switcher.js @@ -52,6 +52,28 @@ export default { document.body.removeChild(e) }, + importTheme () { + const filePicker = document.createElement('input') + filePicker.setAttribute('type', 'file') + filePicker.setAttribute('accept', '.json') + + filePicker.addEventListener('change', event => { + if (event.target.files[0]) { + // eslint-disable-next-line no-undef + const reader = new FileReader() + reader.onload = ({target}) => { + const parsed = JSON.parse(target.result) + this.normalizeLocalState(parsed.colors, parsed.radii) + } + reader.readAsText(event.target.files[0]) + } + }) + + document.body.appendChild(filePicker) + filePicker.click() + document.body.removeChild(filePicker) + }, + setCustomTheme () { if (!this.bgColorLocal && !this.btnColorLocal && !this.linkColorLocal) { // reset to picked themes diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue index c8d955e1..0bc08bd7 100644 --- a/src/components/style_switcher/style_switcher.vue +++ b/src/components/style_switcher/style_switcher.vue @@ -10,6 +10,7 @@ </div> <div> <button class="btn" @click="exportCurrentTheme">{{ $t('settings.export_theme') }}</button> + <button class="btn" @click="importTheme">{{ $t('settings.import_theme') }}</button> </div> <div class="color-container"> <p>{{$t('settings.theme_help')}}</p> diff --git a/src/i18n/messages.js b/src/i18n/messages.js index ee0fcd2a..cc9090c7 100644 --- a/src/i18n/messages.js +++ b/src/i18n/messages.js @@ -289,6 +289,7 @@ const en = { theme: 'Theme', presets: 'Presets', export_theme: 'Export current theme', + import_theme: 'Load saved theme', theme_help: 'Use hex color codes (#rrggbb) to customize your color theme.', radii_help: 'Set up interface edge rounding (in pixels)', background: 'Background', |
