diff --git a/resources/ts/app.ts b/resources/ts/app.ts index 972ca93..2adc0ca 100644 --- a/resources/ts/app.ts +++ b/resources/ts/app.ts @@ -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); diff --git a/resources/ts/components/departures.ts b/resources/ts/components/departures.ts index 7771db9..a96968b 100644 --- a/resources/ts/components/departures.ts +++ b/resources/ts/components/departures.ts @@ -15,4 +15,4 @@ export class Departures extends Vue { stops: Stop[]; } -Vue.component('Departures', Departures); \ No newline at end of file +Vue.component('Departures', Departures); diff --git a/resources/ts/store/index.ts b/resources/ts/store/index.ts index 07ffcc8..6a2f7fd 100644 --- a/resources/ts/store/index.ts +++ b/resources/ts/store/index.ts @@ -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({ + reducer: state => ({ favourites: state.favourites }) +}); + +const sessionStoragePersist = new VuexPersistence({ + 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, ] -}) \ No newline at end of file +})