diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-21 15:55:52 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2018-12-13 16:59:35 +0100 |
| commit | ec8b0c51f872d2972a3deb6d6a836b9d9fd30141 (patch) | |
| tree | 516e9817b3eedd44540d1283a3443022c3153417 /src | |
| parent | 65d101fadd83c0b22e2285dc4e9825962c29cca0 (diff) | |
| download | brokentalents-ec8b0c51f872d2972a3deb6d6a836b9d9fd30141.tar.gz brokentalents-ec8b0c51f872d2972a3deb6d6a836b9d9fd30141.zip | |
Move query get/set into mixin
Diffstat (limited to 'src')
| -rw-r--r-- | src/HeroDraftGrid.vue | 13 | ||||
| -rw-r--r-- | src/HeroTalentTable.vue | 14 | ||||
| -rw-r--r-- | src/Highlights.vue | 7 | ||||
| -rw-r--r-- | src/Home.vue | 7 | ||||
| -rw-r--r-- | src/ReportTable.vue | 7 | ||||
| -rw-r--r-- | src/RouterParamMixin.js | 22 | ||||
| -rw-r--r-- | src/TopTalentsBox.vue | 10 |
7 files changed, 38 insertions, 42 deletions
diff --git a/src/HeroDraftGrid.vue b/src/HeroDraftGrid.vue index a130218..48dd466 100644 --- a/src/HeroDraftGrid.vue +++ b/src/HeroDraftGrid.vue @@ -27,10 +27,12 @@ import Vue from 'vue'; import TalentImage from './TalentImage.vue'; import HeroImage from './HeroImage.vue'; +import RouterParamMixin from './RouterParamMixin.js'; import * as maps from './maps/maps'; export default Vue.component('hero-draft-grid', { props: [ 'reportService' ], + mixins: [ RouterParamMixin ], data: function() { return { actors: this.reportService.getActors(), @@ -38,17 +40,6 @@ export default Vue.component('hero-draft-grid', { getTalentName: maps.getTalentName, }; }, - computed: { - selectedActor: { - get: function() { - return this.$route.query.actor; - }, - set: function(value) { - const query = Object.assign({}, this.$route.query, { actor: value }); - this.$router.push({ query }); - }, - }, - }, components: { TalentImage, HeroImage, diff --git a/src/HeroTalentTable.vue b/src/HeroTalentTable.vue index 881d441..fee687e 100644 --- a/src/HeroTalentTable.vue +++ b/src/HeroTalentTable.vue @@ -29,22 +29,21 @@ import Vue from 'vue'; import TalentImage from './TalentImage.vue'; import HeroImage from './HeroImage.vue'; +import RouterParamMixin from './RouterParamMixin.js'; import * as maps from './maps/maps'; export default Vue.component('hero-talent-table', { props: [ 'reportService' ], + mixins: [ RouterParamMixin ], data: function() { return { - totalPicks: this.reportService.getTotalPicks('casual_aral'), getHero: maps.getHero, getTalentName: maps.getTalentName, }; }, computed: { - selectedMode: { - get: function() { - return this.$route.query.mode; - }, + totalPicks: function() { + return this.reportService.getTotalPicks(this.selectedMode); }, heroReport: function() { return this.reportService.getReport(this.selectedMode) @@ -55,11 +54,6 @@ export default Vue.component('hero-talent-table', { .map((entry) => entry.Count) .reduce((agg, cur) => agg + cur, 0); }, - selectedActor: { - get: function() { - return this.$route.query.actor; - }, - }, }, components: { TalentImage, diff --git a/src/Highlights.vue b/src/Highlights.vue index b98e792..02392ee 100644 --- a/src/Highlights.vue +++ b/src/Highlights.vue @@ -76,15 +76,12 @@ <script> import Vue from 'vue'; import TalentBox from './TalentBox.vue'; +import RouterParamMixin from './RouterParamMixin.js'; export default Vue.component('highlights', { props: [ 'reportService' ], + mixins: [ RouterParamMixin ], computed: { - selectedMode: { - get: function() { - return this.$route.query.mode; - }, - }, stats: function() { return { topWin: this.reportService.getTopWin(this.selectedMode), diff --git a/src/Home.vue b/src/Home.vue index 69de621..b18a3d3 100644 --- a/src/Home.vue +++ b/src/Home.vue @@ -11,10 +11,12 @@ <script> import Vue from 'vue'; import ModeTab from './ModeTab.vue'; +import RouterParamMixin from './RouterParamMixin.js'; import * as maps from './maps/maps'; export default Vue.component('home', { props: [ 'reportService' ], + mixins: [ RouterParamMixin ], data: function() { return { modes: this.reportService.getModes(), @@ -24,12 +26,11 @@ export default Vue.component('home', { computed: { tabIndex: { get: function() { - return this.reportService.getModes().indexOf(this.$route.query.mode); + return this.reportService.getModes().indexOf(this.selectedMode); }, set: function(index) { const mode = this.reportService.getModes()[index]; - const query = Object.assign({}, this.$route.query, { mode: mode }); - this.$router.push({ query }); + this.selectedMode = mode; }, }, }, diff --git a/src/ReportTable.vue b/src/ReportTable.vue index ea7f978..ed099c2 100644 --- a/src/ReportTable.vue +++ b/src/ReportTable.vue @@ -67,10 +67,12 @@ <script> import Vue from 'vue'; import HeroImage from './HeroImage.vue'; +import RouterParamMixin from './RouterParamMixin.js'; import * as maps from './maps/maps'; export default Vue.component('report-table', { props: [ 'reportService' ], + mixins: [ RouterParamMixin ], data: function() { return { getTalentName: maps.getTalentName, @@ -79,11 +81,6 @@ export default Vue.component('report-table', { }; }, computed: { - selectedMode: { - get: function() { - return this.$route.query.mode; - }, - }, report: function() { return this.reportService.getReport(this.selectedMode); }, diff --git a/src/RouterParamMixin.js b/src/RouterParamMixin.js new file mode 100644 index 0000000..92b698d --- /dev/null +++ b/src/RouterParamMixin.js @@ -0,0 +1,22 @@ +export default { + computed: { + selectedActor: { + get: function() { + return this.$route.query.actor; + }, + set: function(value) { + const query = Object.assign({}, this.$route.query, { actor: value }); + this.$router.push({ query }); + }, + }, + selectedMode: { + get: function() { + return this.$route.query.mode; + }, + set: function(value) { + const query = Object.assign({}, this.$route.query, { mode: value }); + this.$router.push({ query }); + }, + }, + }, +}; diff --git a/src/TopTalentsBox.vue b/src/TopTalentsBox.vue index e0e7cfb..e84b366 100644 --- a/src/TopTalentsBox.vue +++ b/src/TopTalentsBox.vue @@ -30,10 +30,12 @@ import Vue from 'vue'; import TalentImage from './TalentImage.vue'; import HeroImage from './HeroImage.vue'; +import RouterParamMixin from './RouterParamMixin.js'; import * as maps from './maps/maps'; export default Vue.component('hero-search-box', { props: [ 'reportService' ], + mixins: [ RouterParamMixin ], data: function() { return { getHero: maps.getHero, @@ -41,17 +43,9 @@ export default Vue.component('hero-search-box', { }; }, computed: { - selectedMode: { - get: function() { - return this.$route.query.mode; - }, - }, top10Talents: function() { return this.reportService.getTop10Picks(this.selectedMode); }, - totalPicks: function() { - return this.reportService.getTotalPicks(this.selectedMode); - }, }, components: { TalentImage, |
