diff --git a/app/screens/settings/notification_settings_email/notification_settings_email.android.js b/app/screens/settings/notification_settings_email/notification_settings_email.android.js index 5183421da..529e6495f 100644 --- a/app/screens/settings/notification_settings_email/notification_settings_email.android.js +++ b/app/screens/settings/notification_settings_email/notification_settings_email.android.js @@ -180,7 +180,7 @@ class NotificationSettingsEmailAndroid extends NotificationSettingsEmailBase { {sendEmailNotifications && } diff --git a/app/screens/settings/notification_settings_email/notification_settings_email.android.test.js b/app/screens/settings/notification_settings_email/notification_settings_email.android.test.js index 46b85845b..f79b5c26d 100644 --- a/app/screens/settings/notification_settings_email/notification_settings_email.android.test.js +++ b/app/screens/settings/notification_settings_email/notification_settings_email.android.test.js @@ -56,20 +56,20 @@ describe('NotificationSettingsEmailAndroid', () => { expect(wrapper.instance().renderEmailNotificationsModal(style)).toMatchSnapshot(); }); - test('should match state on setEmailNotifications', () => { + test('should match state on setEmailInterval', () => { const wrapper = shallowWithIntl( ); - wrapper.setState({email: 'false', interval: '0'}); - wrapper.instance().setEmailNotifications('30'); - expect(wrapper.state({email: 'true', interval: '30'})); + wrapper.setState({interval: '0'}); + wrapper.instance().setEmailInterval('30'); + expect(wrapper.state({interval: '30'})); - wrapper.instance().setEmailNotifications('0'); - expect(wrapper.state({email: 'false', interval: '0'})); + wrapper.instance().setEmailInterval('0'); + expect(wrapper.state({interval: '0'})); - wrapper.instance().setEmailNotifications('3600'); - expect(wrapper.state({email: 'true', interval: '3600'})); + wrapper.instance().setEmailInterval('3600'); + expect(wrapper.state({interval: '3600'})); }); test('should match state on select of RadioButtonGroup', () => { diff --git a/app/screens/settings/notification_settings_email/notification_settings_email.ios.js b/app/screens/settings/notification_settings_email/notification_settings_email.ios.js index 89125e958..70d71c6bb 100644 --- a/app/screens/settings/notification_settings_email/notification_settings_email.ios.js +++ b/app/screens/settings/notification_settings_email/notification_settings_email.ios.js @@ -50,7 +50,7 @@ class NotificationSettingsEmailIos extends NotificationSettingsEmailBase { defaultMessage='Immediately' /> )} - action={this.setEmailNotifications} + action={this.setEmailInterval} actionType='select' actionValue={Preferences.INTERVAL_IMMEDIATE.toString()} selected={newInterval === Preferences.INTERVAL_IMMEDIATE.toString()} @@ -66,7 +66,7 @@ class NotificationSettingsEmailIos extends NotificationSettingsEmailBase { defaultMessage='Every 15 minutes' /> )} - action={this.setEmailNotifications} + action={this.setEmailInterval} actionType='select' actionValue={Preferences.INTERVAL_FIFTEEN_MINUTES.toString()} selected={newInterval === Preferences.INTERVAL_FIFTEEN_MINUTES.toString()} @@ -80,7 +80,7 @@ class NotificationSettingsEmailIos extends NotificationSettingsEmailBase { defaultMessage='Every hour' /> )} - action={this.setEmailNotifications} + action={this.setEmailInterval} actionType='select' actionValue={Preferences.INTERVAL_HOUR.toString()} selected={newInterval === Preferences.INTERVAL_HOUR.toString()} @@ -96,7 +96,7 @@ class NotificationSettingsEmailIos extends NotificationSettingsEmailBase { defaultMessage='Never' /> )} - action={this.setEmailNotifications} + action={this.setEmailInterval} actionType='select' actionValue={Preferences.INTERVAL_NEVER.toString()} selected={newInterval === Preferences.INTERVAL_NEVER.toString()} diff --git a/app/screens/settings/notification_settings_email/notification_settings_email.ios.test.js b/app/screens/settings/notification_settings_email/notification_settings_email.ios.test.js index c20e7cc3d..dcb068ec4 100644 --- a/app/screens/settings/notification_settings_email/notification_settings_email.ios.test.js +++ b/app/screens/settings/notification_settings_email/notification_settings_email.ios.test.js @@ -86,20 +86,20 @@ describe('NotificationSettingsEmailIos', () => { expect(savePreferences).toBeCalledWith('current_user_id', [{category: 'notifications', name: 'email_interval', user_id: 'current_user_id', value: 30}]); }); - test('should match state on setEmailNotifications', () => { + test('should match state on setEmailInterval', () => { const wrapper = shallow( ); - wrapper.setState({email: 'false', interval: '0'}); - wrapper.instance().setEmailNotifications('30'); - expect(wrapper.state({email: 'true', interval: '30'})); + wrapper.setState({interval: '0'}); + wrapper.instance().setEmailInterval('30'); + expect(wrapper.state({interval: '30'})); - wrapper.instance().setEmailNotifications('0'); - expect(wrapper.state({email: 'false', interval: '0'})); + wrapper.instance().setEmailInterval('0'); + expect(wrapper.state({interval: '0'})); - wrapper.instance().setEmailNotifications('3600'); - expect(wrapper.state({email: 'true', interval: '3600'})); + wrapper.instance().setEmailInterval('3600'); + expect(wrapper.state({interval: '3600'})); }); test('should match state on action of SectionItem', () => { diff --git a/app/screens/settings/notification_settings_email/notification_settings_email_base.js b/app/screens/settings/notification_settings_email/notification_settings_email_base.js index 021d1edf6..c63dda1a7 100644 --- a/app/screens/settings/notification_settings_email/notification_settings_email_base.js +++ b/app/screens/settings/notification_settings_email/notification_settings_email_base.js @@ -84,25 +84,25 @@ export default class NotificationSettingsEmailBase extends PureComponent { } }; - setEmailNotifications = (value) => { - const {sendEmailNotifications} = this.props; - - let email = 'false'; - if (sendEmailNotifications && value !== Preferences.INTERVAL_NEVER.toString()) { - email = 'true'; - } - - this.setState({ - email, - newInterval: value, - }); + setEmailInterval = (value) => { + this.setState({newInterval: value}); }; saveEmailNotifyProps = () => { - const {actions, currentUser} = this.props; - const {email, emailInterval, newInterval} = this.state; + const {emailInterval, newInterval} = this.state; if (emailInterval !== newInterval) { + const { + actions, + currentUser, + sendEmailNotifications, + } = this.props; + + let email = 'false'; + if (sendEmailNotifications && newInterval !== Preferences.INTERVAL_NEVER.toString()) { + email = 'true'; + } + const notifyProps = getNotificationProps(currentUser); actions.updateMe({notify_props: {...notifyProps, email}});