diff --git a/webapp/components/Registration/RegistrationSlideEmail.vue b/webapp/components/Registration/RegistrationSlideEmail.vue index 4c190f64e..35e80bf4c 100644 --- a/webapp/components/Registration/RegistrationSlideEmail.vue +++ b/webapp/components/Registration/RegistrationSlideEmail.vue @@ -180,6 +180,15 @@ export default { setButtonValues() { this.sliderData.setSliderValuesCallback(this.validInput, this.buttonValues()) }, + isVariablesRequested(variables) { + return ( + this.sliderData.sliders[this.sliderIndex].data.request && + this.sliderData.sliders[this.sliderIndex].data.request.variables && + this.sliderData.sliders[this.sliderIndex].data.request.variables.email === variables.email + // Wolle && + // this.sliderData.sliders[this.sliderIndex].data.request.variables.token === variables.code + ) + }, async onNextClick() { const mutation = this.token ? SignupByInvitationMutation : SignupMutation const { token } = this @@ -190,24 +199,12 @@ export default { return true } - if ( - this.sendEmailAgain || - !this.sliderData.sliders[this.sliderIndex].data.request || - (this.sliderData.sliders[this.sliderIndex].data.request && - (!this.sliderData.sliders[this.sliderIndex].data.request.variables || - (this.sliderData.sliders[this.sliderIndex].data.request.variables && - !this.sliderData.sliders[this.sliderIndex].data.request.variables === variables))) - ) { - this.sliderData.setSliderValuesCallback( - this.sliderData.sliders[this.sliderIndex].validated, - { sliderData: { request: { variables }, response: null } }, - ) - + if (this.sendEmailAgain || !this.isVariablesRequested(variables)) { try { const response = await this.$apollo.mutate({ mutation, variables }) // e-mail is send in emailMiddleware of backend this.sliderData.setSliderValuesCallback( this.sliderData.sliders[this.sliderIndex].validated, - { sliderData: { response: response.data } }, + { sliderData: { request: { variables }, response: response.data } }, ) if (this.sliderData.sliders[this.sliderIndex].data.response) { diff --git a/webapp/components/Registration/RegistrationSlideInvite.vue b/webapp/components/Registration/RegistrationSlideInvite.vue index d3879ac4d..478a351bc 100644 --- a/webapp/components/Registration/RegistrationSlideInvite.vue +++ b/webapp/components/Registration/RegistrationSlideInvite.vue @@ -76,12 +76,14 @@ export default { async sendValidation() { const { inviteCode } = this.formData + this.sliderData.setSliderValuesCallback(null, { collectedInputData: { inviteCode } }) + let dbValidated = false if (this.validInput) { await this.handleSubmitVerify() dbValidated = this.sliderData.sliders[this.sliderIndex].data.response.isValidInviteCode } - this.sliderData.setSliderValuesCallback(dbValidated, { collectedInputData: { inviteCode } }) + this.sliderData.setSliderValuesCallback(dbValidated) }, async handleInput() { this.sendValidation() @@ -89,28 +91,26 @@ export default { async handleInputValid() { this.sendValidation() }, + isVariablesRequested(variables) { + return ( + this.sliderData.sliders[this.sliderIndex].data.request && + this.sliderData.sliders[this.sliderIndex].data.request.variables && + this.sliderData.sliders[this.sliderIndex].data.request.variables.code === variables.code + ) + }, async handleSubmitVerify() { - const { inviteCode } = this.formData + const { inviteCode } = this.sliderData.collectedInputData const variables = { code: inviteCode } - if ( - !this.sliderData.sliders[this.sliderIndex].data.request || - (this.sliderData.sliders[this.sliderIndex].data.request && - (!this.sliderData.sliders[this.sliderIndex].data.request.variables || - (this.sliderData.sliders[this.sliderIndex].data.request.variables && - !this.sliderData.sliders[this.sliderIndex].data.request.variables === variables))) - ) { - this.sliderData.setSliderValuesCallback( - this.sliderData.sliders[this.sliderIndex].validated, - { sliderData: { request: { variables }, response: null } }, - ) - + if (!this.isVariablesRequested(variables)) { try { const response = await this.$apollo.query({ query: isValidInviteCodeQuery, variables }) - this.sliderData.setSliderValuesCallback( - this.sliderData.sliders[this.sliderIndex].validated, - { sliderData: { response: response.data } }, - ) + this.sliderData.setSliderValuesCallback(null, { + sliderData: { + request: { variables }, + response: response.data, + }, + }) if ( this.sliderData.sliders[this.sliderIndex].data.response && diff --git a/webapp/components/Registration/RegistrationSlideNonce.vue b/webapp/components/Registration/RegistrationSlideNonce.vue index bb01263bd..0be02e922 100644 --- a/webapp/components/Registration/RegistrationSlideNonce.vue +++ b/webapp/components/Registration/RegistrationSlideNonce.vue @@ -27,6 +27,13 @@