Skip to content

Commit 03cadc1

Browse files
committed
use vuex save state
1 parent 68dad7d commit 03cadc1

14 files changed

+144
-61
lines changed

web/.eslintrc.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ module.exports = {
3434
'optionalDependencies': ['test/unit/index.js']
3535
}],
3636
// allow debugger during development
37-
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
37+
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
38+
'no-param-reassign': [2, {
39+
'props': false
40+
}],
3841
}
3942
}

web/package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"moment": "^2.19.1",
1919
"vue": "^2.5.2",
2020
"vue-lazyload": "^1.1.4",
21-
"vue-router": "^3.0.1"
21+
"vue-router": "^3.0.1",
22+
"vuex": "^3.0.1"
2223
},
2324
"devDependencies": {
2425
"autoprefixer": "^7.1.2",

web/src/App.vue

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
<template>
22
<div id="app">
33
<nav>
4-
<router-view name="navbar" :info="info"></router-view>
4+
<router-view name="navbar"></router-view>
55
</nav>
66

7-
<router-view name="welcome" :info="info"></router-view>
7+
<router-view name="welcome"></router-view>
88

99
<div class="container">
10-
<router-view name="container" :info="info"></router-view>
10+
<router-view name="container"></router-view>
1111
</div>
1212
</div>
1313
</template>
1414

1515
<script>
1616
import axios from 'axios';
17+
import { mapState, mapMutations } from 'vuex';
1718
1819
export default {
1920
name: 'app',
20-
data() {
21-
return {
22-
info: {},
23-
};
24-
},
21+
methods: mapMutations([
22+
'setInfo',
23+
]),
24+
computed: mapState([
25+
'info',
26+
]),
2527
async mounted() {
2628
let data;
2729
try {
@@ -30,7 +32,9 @@ export default {
3032
this.showNetworkErrorAlert = true;
3133
return;
3234
}
33-
this.info = data.data;
35+
this.setInfo({
36+
info: data.data,
37+
});
3438
},
3539
};
3640
</script>

web/src/components/Footer.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99

1010
<script>
1111
import moment from 'moment';
12+
import { mapState } from 'vuex';
1213
1314
export default {
1415
name: 'Footer',
15-
props: ['info', 'player'],
16+
props: ['player'],
1617
computed: {
18+
...mapState([
19+
'info',
20+
]),
1721
lastUpdate() {
1822
if (this.player && this.info) {
1923
return moment(this.player.lastUpdate || 0).format(this.info.timeFormat ? this.info.timeFormat.full : '');

web/src/components/Membership.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,15 @@
3535

3636
<script>
3737
import moment from 'moment';
38+
import { mapState } from 'vuex';
3839
3940
export default {
4041
name: 'Membership',
41-
props: ['player', 'info'],
42+
props: ['player'],
4243
computed: {
44+
...mapState([
45+
'info',
46+
]),
4347
timeStart() {
4448
return moment(this.player.data.time_start).format(this.info.timeFormat ? this.info.timeFormat.full : '');
4549
},

web/src/components/Name.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,15 @@
1010

1111
<script>
1212
import moment from 'moment';
13+
import { mapState } from 'vuex';
1314
1415
export default {
1516
name: 'Name',
16-
props: ['name', 'info'],
17+
props: ['name'],
1718
computed: {
19+
...mapState([
20+
'info',
21+
]),
1822
changedToAt() {
1923
return moment(name.changedToAt).format(this.info.timeFormat ? this.info.timeFormat.compact : '');
2024
},

web/src/components/NameHistory.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</div>
1010
<div class="panel-body">
1111
<ul class="list-group">
12-
<name v-for="(name, key, index) in player.data.names" :key="index" :name="name" :info="info"></name>
12+
<name v-for="(name, key, index) in player.data.names" :key="index" :name="name"></name>
1313
</ul>
1414
</div>
1515
</div>
@@ -21,7 +21,7 @@ import Name from './Name';
2121
2222
export default {
2323
name: 'NameHistory',
24-
props: ['player', 'info'],
24+
props: ['player'],
2525
components: {
2626
name: Name,
2727
},

web/src/components/Navbar.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@
1717
</template>
1818

1919
<script>
20+
import { mapState } from 'vuex';
21+
2022
export default {
2123
name: 'Navbar',
22-
props: ['info'],
24+
computed: mapState([
25+
'info',
26+
]),
2327
};
2428
2529
</script>

web/src/components/PlayerAdvancement.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,13 @@
4949
</template>
5050

5151
<script>
52+
import { mapState } from 'vuex';
5253
import AdvancementBlock from './AdvancementBlock';
5354
import AchievementBlock from './AchievementBlock';
5455
5556
export default {
5657
name: 'PlayerAdvancement',
57-
props: ['player', 'info'],
58+
props: ['player'],
5859
data() {
5960
return {
6061
advTotal: 0,
@@ -68,6 +69,11 @@ export default {
6869
mounted() {
6970
this.dealWithAdvancements(this.player.advancements);
7071
},
72+
computed: {
73+
...mapState([
74+
'info',
75+
]),
76+
},
7177
methods: {
7278
dealWithAdvancements(advancements) {
7379
Object.keys(advancements).forEach((k) => {

0 commit comments

Comments
 (0)