1
0
mirror of https://github.com/kihashi/stardew_community_checklist.git synced 2025-10-19 08:03:17 +00:00

Add support for saving data to local storage

This commit is contained in:
John Cleaver 2018-05-19 16:48:04 -04:00
parent 784050fdde
commit 542e4f7bf1
4 changed files with 39 additions and 6 deletions

View File

@ -22,7 +22,8 @@
"sass-loader": "^6.0.6",
"vue": "^2.5.2",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
"vuex": "^3.0.1",
"vuex-persistedstate": "^2.5.4"
},
"devDependencies": {
"autoprefixer": "^7.1.2",

View File

@ -14,6 +14,9 @@ export default {
components: {
HeaderBar,
AppFooter
},
created () {
this.$store.commit('initState')
}
}
</script>

View File

@ -1,5 +1,6 @@
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import SkillJson from '@/assets/game_data/skills.json'
import SeasonJson from '@/assets/game_data/seasons.json'
@ -9,18 +10,24 @@ import ItemJson from '@/assets/game_data/items.json'
Vue.use(Vuex)
var state = {
StoredItems: {},
var prestate = {
seasons: loadSeasons(),
skills: loadSkills(),
rooms: loadRooms()
}
state.bundles = loadBundles(state.rooms)
state.items = loadItems(state.bundles, state.skills, state.seasons)
prestate.bundles = loadBundles(prestate.rooms)
prestate.items = loadItems(prestate.bundles, prestate.skills, prestate.seasons)
export default new Vuex.Store({
state: state,
state: {
StoredItems: {}
},
plugins: [
createPersistedState({
reducer: state => ({ StoredItems: state.StoredItems })
})
],
getters: {
IsBundleItemRedeemed: (state) => (BundleItem) => {
return state.StoredItems.hasOwnProperty(BundleItem.id)
@ -38,6 +45,13 @@ export default new Vuex.Store({
},
UndoRedeemItem (state, BundleItem) {
Vue.delete(state.StoredItems, BundleItem.id)
},
initState (state) {
Vue.set(state, 'seasons', prestate.seasons)
Vue.set(state, 'skills', prestate.skills)
Vue.set(state, 'rooms', prestate.rooms)
Vue.set(state, 'bundles', prestate.bundles)
Vue.set(state, 'items', prestate.items)
}
}
})

View File

@ -1908,6 +1908,10 @@ deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
deepmerge@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.0.tgz#511a54fff405fc346f0240bb270a3e9533a31102"
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
@ -5759,6 +5763,10 @@ shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
shvl@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/shvl/-/shvl-1.3.1.tgz#6c20a17b4a20b08e9f8cab60c50a92229fcc176e"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@ -6550,6 +6558,13 @@ vue@^2.5.2:
version "2.5.13"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.13.tgz#95bd31e20efcf7a7f39239c9aa6787ce8cf578e1"
vuex-persistedstate@^2.5.4:
version "2.5.4"
resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-2.5.4.tgz#a19710ad7f9a08cea4e65fc585924d9fdac7384a"
dependencies:
deepmerge "^2.1.0"
shvl "^1.3.0"
vuex@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2"