Remember selected stops in session storage

This commit is contained in:
Kacper Donat 2020-01-13 20:52:40 +01:00
parent cdffda56aa
commit ecd02d21bb
3 changed files with 26 additions and 7 deletions

View File

@ -12,7 +12,7 @@ window['Popper'] = Popper;
// dependencies
import Vue from "vue";
import Vuex, { mapActions, mapMutations, mapState, Store } from 'vuex';
import Vuex from 'vuex';
import { Workbox } from "workbox-window";
Vue.use(Vuex);

View File

@ -15,4 +15,4 @@ export class Departures extends Vue {
stops: Stop[];
}
Vue.component('Departures', Departures);
Vue.component('Departures', Departures);

View File

@ -1,15 +1,34 @@
import Vuex from 'vuex';
import messages from './messages';
import departures from './departures'
import favourites, { localStorageSaver } from './favourites'
import messages, { MessagesState } from './messages';
import departures, { DeparturesState } from './departures'
import favourites, { FavouritesState, localStorageSaver } from './favourites'
import { state, mutations, actions } from "./root";
import { state, mutations, actions, RootState } from "./root";
import VuexPersistence from "vuex-persist";
export type State = {
messages: MessagesState;
departures: DeparturesState;
favourites: FavouritesState;
} & RootState;
const localStoragePersist = new VuexPersistence<State>({
reducer: state => ({ favourites: state.favourites })
});
const sessionStoragePersist = new VuexPersistence<State>({
reducer: state => ({ stops: state.stops }),
storage: window.sessionStorage
});
export default new Vuex.Store({
state, mutations, actions,
modules: { messages, departures, favourites },
plugins: [
// todo: remove after some time
localStorageSaver('favourites.favourites', 'favourites'),
localStoragePersist.plugin,
sessionStoragePersist.plugin,
]
})
})