diff --git a/website/client/app.vue b/website/client/app.vue index 1133f0823b..400991d4d7 100644 --- a/website/client/app.vue +++ b/website/client/app.vue @@ -105,7 +105,7 @@ div @import '~client/assets/scss/colors.scss'; /* @TODO: The modal-open class is not being removed. Let's try this for now */ - .modal, .modal-open { + .modal { overflow-y: scroll !important; } @@ -499,8 +499,16 @@ export default { }); this.$root.$on('bv::modal::hidden', (bvEvent) => { - const modalId = bvEvent.target && bvEvent.target.id; - if (!modalId) return; + let modalId = bvEvent.target && bvEvent.target.id; + + // sometimes the target isn't passed to the hidden event, fallback is the vueTarget + if (!modalId) { + modalId = bvEvent.vueTarget && bvEvent.vueTarget.id; + } + + if (!modalId) { + return; + } const modalStack = this.$store.state.modalStack; @@ -517,6 +525,7 @@ export default { // Get previous modal const modalBefore = modalOnTop ? modalOnTop.prev : undefined; + if (modalBefore) this.$root.$emit('bv::show::modal', modalBefore, {fromRoot: true}); }); }, diff --git a/website/client/components/notifications.vue b/website/client/components/notifications.vue index d255437879..1df5fad01c 100644 --- a/website/client/components/notifications.vue +++ b/website/client/components/notifications.vue @@ -485,7 +485,9 @@ export default { break; case 'CHALLENGE_JOINED_ACHIEVEMENT': this.playSound('Achievement_Unlocked'); - this.$root.$emit('bv::show::modal', 'joined-challenge'); + this.text(`${this.$t('achievement')}: ${this.$t('joinedChallenge')}`, () => { + this.$root.$emit('bv::show::modal', 'joined-challenge'); + }, false); break; case 'INVITED_FRIEND_ACHIEVEMENT': this.playSound('Achievement_Unlocked'); diff --git a/website/client/components/snackbars/notification.vue b/website/client/components/snackbars/notification.vue index 648387cdb1..3e771ffa09 100644 --- a/website/client/components/snackbars/notification.vue +++ b/website/client/components/snackbars/notification.vue @@ -1,6 +1,6 @@