Skip to content

Instantly share code, notes, and snippets.

@ndc
Created January 5, 2020 14:18
Show Gist options
  • Select an option

  • Save ndc/e95c2ddf33bf21597fa16ac8158fac73 to your computer and use it in GitHub Desktop.

Select an option

Save ndc/e95c2ddf33bf21597fa16ac8158fac73 to your computer and use it in GitHub Desktop.

Revisions

  1. ndc created this gist Jan 5, 2020.
    32 changes: 32 additions & 0 deletions App.vue
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    <template>
    <div id="app">
    <router-view />
    </div>
    </template>

    <style>
    </style>

    <script>
    import SettingsHelper from "./store/settings.js";
    export default {
    mounted() {
    window.addEventListener("storage", this.onSettingsUpdated);
    let settings = SettingsHelper.readFromLocalStorage();
    this.$store.commit("updateSettings", settings);
    },
    beforeDestroy() {
    window.removeEventListener("storage", this.onSettingsUpdated);
    },
    methods: {
    onSettingsUpdated(event) {
    let settings = SettingsHelper.readFromEvent(event);
    if (!!settings) {
    this.$store.commit("updateSettings", settings);
    }
    }
    }
    };
    </script>
    16 changes: 16 additions & 0 deletions settings.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    const settingsHelper = {
    // ...
    readFromEvent(event) {
    if (event.key != "settings") {
    return null;
    }
    let settings = JSON.parse(event.newValue);
    if (!this.isSettingsValid(settings)) {
    settings = this.resetSettings();
    }
    return settings;
    }
    // ...
    }

    export default settingsHelper;