diff --git a/www/view/src/components/view/UserSettingEmail.js b/www/view/src/components/view/UserSettingEmail.js index f8ce6db..7b52bca 100755 --- a/www/view/src/components/view/UserSettingEmail.js +++ b/www/view/src/components/view/UserSettingEmail.js @@ -105,8 +105,8 @@ class UserSettingEmail extends React.Component { error: {}, validationEmail: null, code: '', - codeDisabled: false, - count: 121 + codeDisabled: [], + count: {} } const { intl } = props @@ -220,7 +220,12 @@ class UserSettingEmail extends React.Component { resentCommitEmailCode (email) { const { intl } = this.props const { codeDisabled } = this.state - if (codeDisabled) { + + if (typeof codeDisabled[email] === 'undefined') { + codeDisabled[email] = false + } + + if (codeDisabled[email]) { return false } @@ -231,20 +236,31 @@ class UserSettingEmail extends React.Component { .then((data) => { if (!data.code) { this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0)) - this.countDown() + this.countDown(email) } else { this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.getEmailCodeFail' }), 2)) } }) } - countDown () { - let { count } = this.state - if (count) { - this.setState({ codeDisabled: true, count: --count }) - window.setTimeout(() => this.countDown(), 1000) + countDown (email) { + const { count, codeDisabled } = this.state + + if (typeof count[email] === 'undefined') { + count[email] = 120 + } + + if (count[email]) { + this.setState({ + codeDisabled: { ...codeDisabled, [email]: true }, + count: { ...count, [email]: --count[email] } + }) + window.setTimeout(() => this.countDown(email), 1000) } else { - this.setState({ codeDisabled: false, count: 121 }) + this.setState({ + codeDisabled: { ...codeDisabled, [email]: false }, + count: { ...count, [email]: 120 } + }) } } @@ -331,12 +347,12 @@ class UserSettingEmail extends React.Component { ? {intl.formatMessage({ id: 'message.contactedEmail' })} : {intl.formatMessage({ id: 'message.shouldValidation' })} - this.resentCommitEmailCode(item.email)} > {intl.formatMessage({ id: 'message.resendEmail' })}? - {codeDisabled && '(' + count + ')'} + {codeDisabled[item.email] && '(' + count[item.email] + ')'} , item.email !== primaryEmail &&