From ec8b0c51f872d2972a3deb6d6a836b9d9fd30141 Mon Sep 17 00:00:00 2001 From: schneefux Date: Mon, 21 May 2018 15:55:52 +0200 Subject: Move query get/set into mixin --- src/HeroDraftGrid.vue | 13 ++----------- src/HeroTalentTable.vue | 14 ++++---------- src/Highlights.vue | 7 ++----- src/Home.vue | 7 ++++--- src/ReportTable.vue | 7 ++----- src/RouterParamMixin.js | 22 ++++++++++++++++++++++ src/TopTalentsBox.vue | 10 ++-------- 7 files changed, 38 insertions(+), 42 deletions(-) create mode 100644 src/RouterParamMixin.js (limited to 'src') 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 @@