diff --git a/website/client/app.vue b/website/client/app.vue index 75da88904c5..cae0f46a122 100644 --- a/website/client/app.vue +++ b/website/client/app.vue @@ -9,7 +9,7 @@ .container-fluid app-header buyModal( - :item="selectedItemToBuy", + :item="selectedItemToBuy || {}", :withPin="true", @change="resetItemToBuy($event)", @buyPressed="customPurchase($event)", @@ -17,9 +17,8 @@ ) selectMembersModal( - :item="selectedCardToBuy", + :item="selectedSpellToBuy || {}", :group="user.party", - @change="resetCardToBuy($event)", @memberSelected="memberSelected($event)", ) @@ -92,7 +91,7 @@ export default { data () { return { selectedItemToBuy: null, - selectedCardToBuy: null, + selectedSpellToBuy: null, sound: { oggSource: '', @@ -128,6 +127,12 @@ export default { this.$root.$on('buyModal::showItem', (item) => { this.selectedItemToBuy = item; + this.$root.$emit('show::modal', 'buy-modal'); + }); + + this.$root.$on('selectMembersModal::showItem', (item) => { + this.selectedSpellToBuy = item; + this.$root.$emit('show::modal', 'select-member-modal'); }); // @TODO split up this file, it's too big @@ -272,11 +277,6 @@ export default { this.selectedItemToBuy = null; } }, - resetCardToBuy ($event) { - if (!$event) { - this.selectedCardToBuy = null; - } - }, itemSelected (item) { this.selectedItemToBuy = item; }, @@ -292,15 +292,20 @@ export default { customPurchase (item) { if (item.purchaseType === 'card') { if (this.user.party._id) { - this.selectedCardToBuy = item; + this.selectedSpellToBuy = item; + + this.$root.$emit('hide::modal', 'buy-modal'); + this.$root.$emit('show::modal', 'select-member-modal'); } else { this.error(this.$t('errorNotInParty')); } } }, memberSelected (member) { - this.$store.dispatch('user:castSpell', {key: this.selectedCardToBuy.key, targetId: member.id}); - this.selectedCardToBuy = null; + this.$store.dispatch('user:castSpell', {key: this.selectedSpellToBuy.key, targetId: member.id}); + this.selectedSpellToBuy = null; + + this.$root.$emit('hide::modal', 'select-member-modal'); }, hideLoadingScreen () { const loadingScreen = document.getElementById('loading-screen'); diff --git a/website/client/components/inventory/items/index.vue b/website/client/components/inventory/items/index.vue index a569b9a7697..8f89a4b82b4 100644 --- a/website/client/components/inventory/items/index.vue +++ b/website/client/components/inventory/items/index.vue @@ -139,13 +139,6 @@ div.popover div.popover-content {{ $t('clickOnEggToHatch', {potionName: currentDraggingPotion.text }) }} - selectMembersModal( - :item="selectedSpell", - :group="user.party", - @change="resetSpell($event)", - @memberSelected="memberSelected($event)", - ) - startQuestModal( :group="user.party" ) @@ -192,7 +185,6 @@ import ItemRows from 'client/components/ui/itemRows'; import CountBadge from 'client/components/ui/countBadge'; import cardsModal from './cards-modal'; -import SelectMembersModal from 'client/components/selectMembersModal'; import HatchedPetDialog from '../stable/hatchedPetDialog'; import startQuestModal from '../../groups/startQuestModal'; @@ -234,7 +226,6 @@ export default { bDropdownItem, HatchedPetDialog, CountBadge, - SelectMembersModal, startQuestModal, cardsModal, }, @@ -252,7 +243,6 @@ export default { currentDraggingPotion: null, potionClickMode: false, hatchedPet: null, - selectedSpell: null, cardOptions: { cardType: '', messageOptions: 0, @@ -275,7 +265,7 @@ export default { this.groups.forEach(group => { const groupKey = group.key; - group.quantity = 0; // reset the count + group.quantity = 0; // resetf the count let itemsArray = itemsByType[groupKey] = []; const contentItems = this.content[groupKey]; @@ -435,7 +425,7 @@ export default { item.quantity--; this.$forceUpdate(); } else { - this.selectedSpell = item; + this.$root.$emit('selectMembersModal::showItem', item); } } else if (groupKey === 'quests') { this.$root.$emit('show::modal', 'start-quest-modal'); @@ -452,17 +442,6 @@ export default { lastMouseMoveEvent = $event; } }, - - resetSpell ($event) { - if (!$event) { - this.selectedSpell = null; - } - }, - - memberSelected (member) { - this.$store.dispatch('user:castSpell', {key: this.selectedSpell.key, targetId: member.id}); - this.selectedSpell = null; - }, }, }; diff --git a/website/client/components/selectMembersModal.vue b/website/client/components/selectMembersModal.vue index 3bda2e79362..507ff707815 100644 --- a/website/client/components/selectMembersModal.vue +++ b/website/client/components/selectMembersModal.vue @@ -2,8 +2,6 @@ div b-modal#select-member-modal( size='lg', - :visible="true", - v-if="item != null", :hideFooter="true", @change="onChange($event)" ) @@ -162,7 +160,9 @@ export default { }, watch: { item () { - this.getMembers(); + if (this.item.key) { + this.getMembers(); + } }, }, methods: { diff --git a/website/client/components/shops/buyModal.vue b/website/client/components/shops/buyModal.vue index 0345bfd406d..7a1d069d521 100644 --- a/website/client/components/shops/buyModal.vue +++ b/website/client/components/shops/buyModal.vue @@ -1,7 +1,5 @@