[MM-55113] Replace usage of LocalizedIcon in 'user_settings_security.tsx' with i/span tags (#25151)

Этот коммит содержится в:
Nicolas Le Cam
2023-10-28 09:19:16 +02:00
коммит произвёл GitHub
родитель 1043aa5330
Коммит 1f3bb8b81d
3 изменённых файлов: 106 добавлений и 146 удалений

Просмотреть файл

@@ -24,15 +24,10 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
<div <div
className="modal-back" className="modal-back"
> >
<LocalizedIcon <i
className="fa fa-angle-left" className="fa fa-angle-left"
onClick={[MockFunction]} onClick={[MockFunction]}
title={ title="Collapse Icon"
Object {
"defaultMessage": "Collapse Icon",
"id": "generic_icons.collapse",
}
}
/> />
</div> </div>
<MemoizedFormattedMessage <MemoizedFormattedMessage
@@ -137,14 +132,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAccessHistory" id="viewAccessHistory"
modalId="access_history" modalId="access_history"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Access History Icon"
Object {
"defaultMessage": "Access History Icon",
"id": "user.settings.security.viewHistory.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View Access History" defaultMessage="View Access History"
@@ -164,14 +154,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAndLogOutOfActiveSessions" id="viewAndLogOutOfActiveSessions"
modalId="activity_log" modalId="activity_log"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Active Sessions Icon"
Object {
"defaultMessage": "Active Sessions Icon",
"id": "user.settings.security.logoutActiveSessions.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View and Log Out of Active Sessions" defaultMessage="View and Log Out of Active Sessions"
@@ -206,15 +191,10 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
<div <div
className="modal-back" className="modal-back"
> >
<LocalizedIcon <i
className="fa fa-angle-left" className="fa fa-angle-left"
onClick={[MockFunction]} onClick={[MockFunction]}
title={ title="Collapse Icon"
Object {
"defaultMessage": "Collapse Icon",
"id": "generic_icons.collapse",
}
}
/> />
</div> </div>
<MemoizedFormattedMessage <MemoizedFormattedMessage
@@ -319,14 +299,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAccessHistory" id="viewAccessHistory"
modalId="access_history" modalId="access_history"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Access History Icon"
Object {
"defaultMessage": "Access History Icon",
"id": "user.settings.security.viewHistory.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View Access History" defaultMessage="View Access History"
@@ -346,14 +321,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAndLogOutOfActiveSessions" id="viewAndLogOutOfActiveSessions"
modalId="activity_log" modalId="activity_log"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Active Sessions Icon"
Object {
"defaultMessage": "Active Sessions Icon",
"id": "user.settings.security.logoutActiveSessions.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View and Log Out of Active Sessions" defaultMessage="View and Log Out of Active Sessions"
@@ -388,15 +358,10 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
<div <div
className="modal-back" className="modal-back"
> >
<LocalizedIcon <i
className="fa fa-angle-left" className="fa fa-angle-left"
onClick={[MockFunction]} onClick={[MockFunction]}
title={ title="Collapse Icon"
Object {
"defaultMessage": "Collapse Icon",
"id": "generic_icons.collapse",
}
}
/> />
</div> </div>
<MemoizedFormattedMessage <MemoizedFormattedMessage
@@ -501,14 +466,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAccessHistory" id="viewAccessHistory"
modalId="access_history" modalId="access_history"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Access History Icon"
Object {
"defaultMessage": "Access History Icon",
"id": "user.settings.security.viewHistory.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View Access History" defaultMessage="View Access History"
@@ -528,14 +488,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAndLogOutOfActiveSessions" id="viewAndLogOutOfActiveSessions"
modalId="activity_log" modalId="activity_log"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Active Sessions Icon"
Object {
"defaultMessage": "Active Sessions Icon",
"id": "user.settings.security.logoutActiveSessions.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View and Log Out of Active Sessions" defaultMessage="View and Log Out of Active Sessions"
@@ -570,15 +525,10 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
<div <div
className="modal-back" className="modal-back"
> >
<LocalizedIcon <i
className="fa fa-angle-left" className="fa fa-angle-left"
onClick={[MockFunction]} onClick={[MockFunction]}
title={ title="Collapse Icon"
Object {
"defaultMessage": "Collapse Icon",
"id": "generic_icons.collapse",
}
}
/> />
</div> </div>
<MemoizedFormattedMessage <MemoizedFormattedMessage
@@ -683,14 +633,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAccessHistory" id="viewAccessHistory"
modalId="access_history" modalId="access_history"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Access History Icon"
Object {
"defaultMessage": "Access History Icon",
"id": "user.settings.security.viewHistory.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View Access History" defaultMessage="View Access History"
@@ -710,14 +655,9 @@ exports[`components/user_settings/display/UserSettingsDisplay should match snaps
id="viewAndLogOutOfActiveSessions" id="viewAndLogOutOfActiveSessions"
modalId="activity_log" modalId="activity_log"
> >
<LocalizedIcon <i
className="fa fa-clock-o" className="fa fa-clock-o"
title={ title="Active Sessions Icon"
Object {
"defaultMessage": "Active Sessions Icon",
"id": "user.settings.security.logoutActiveSessions.icon",
}
}
/> />
<MemoizedFormattedMessage <MemoizedFormattedMessage
defaultMessage="View and Log Out of Active Sessions" defaultMessage="View and Log Out of Active Sessions"

Просмотреть файл

@@ -4,11 +4,13 @@
import {shallow} from 'enzyme'; import {shallow} from 'enzyme';
import React from 'react'; import React from 'react';
import type {OAuthApp} from '@mattermost/types/integrations';
import type {UserProfile} from '@mattermost/types/users'; import type {UserProfile} from '@mattermost/types/users';
import type {MockIntl} from 'tests/helpers/intl-test-helper';
import type * as Utils from 'utils/utils'; import type * as Utils from 'utils/utils';
import UserSettingsSecurity from './user_settings_security'; import {SecurityTab} from './user_settings_security';
jest.mock('utils/utils', () => { jest.mock('utils/utils', () => {
const original = jest.requireActual('utils/utils'); const original = jest.requireActual('utils/utils');
@@ -45,40 +47,43 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
experimentalEnableAuthenticationTransfer: true, experimentalEnableAuthenticationTransfer: true,
passwordConfig: {} as ReturnType<typeof Utils.getPasswordConfig>, passwordConfig: {} as ReturnType<typeof Utils.getPasswordConfig>,
militaryTime: false, militaryTime: false,
intl: {
formatMessage: jest.fn(({id, defaultMessage}) => defaultMessage || id),
} as MockIntl,
}; };
test('should match snapshot, enable google', () => { test('should match snapshot, enable google', () => {
const props = {...requiredProps, enableSaml: false}; const props = {...requiredProps, enableSaml: false};
const wrapper = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
}); });
test('should match snapshot, enable gitlab', () => { test('should match snapshot, enable gitlab', () => {
const props = {...requiredProps, enableSignUpWithGoogle: false, enableSaml: false, enableSignUpWithGitLab: true}; const props = {...requiredProps, enableSignUpWithGoogle: false, enableSaml: false, enableSignUpWithGitLab: true};
const wrapper = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
}); });
test('should match snapshot, enable office365', () => { test('should match snapshot, enable office365', () => {
const props = {...requiredProps, enableSignUpWithGoogle: false, enableSaml: false, enableSignUpWithOffice365: true}; const props = {...requiredProps, enableSignUpWithGoogle: false, enableSaml: false, enableSignUpWithOffice365: true};
const wrapper = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
}); });
test('should match snapshot, enable openID', () => { test('should match snapshot, enable openID', () => {
const props = {...requiredProps, enableSignUpWithGoogle: false, enableSaml: false, enableSignUpWithOpenId: true}; const props = {...requiredProps, enableSignUpWithGoogle: false, enableSaml: false, enableSignUpWithOpenId: true};
const wrapper = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
}); });
test('componentDidMount() should have called getAuthorizedOAuthApps', () => { test('componentDidMount() should have called getAuthorizedOAuthApps', () => {
const props = {...requiredProps, enableOAuthServiceProvider: true}; const props = {...requiredProps, enableOAuthServiceProvider: true};
shallow(<UserSettingsSecurity {...props}/>); shallow<SecurityTab>(<SecurityTab {...props}/>);
expect(requiredProps.actions.getAuthorizedOAuthApps).toHaveBeenCalled(); expect(requiredProps.actions.getAuthorizedOAuthApps).toHaveBeenCalled();
}); });
@@ -93,7 +98,7 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
enableOAuthServiceProvider: true, enableOAuthServiceProvider: true,
}; };
const wrapper = shallow<UserSettingsSecurity>(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
await promise; await promise;
@@ -110,7 +115,7 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
enableOAuthServiceProvider: true, enableOAuthServiceProvider: true,
}; };
const wrapper = shallow<UserSettingsSecurity>(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
await promise; await promise;
@@ -118,9 +123,9 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
}); });
test('submitPassword() should not have called updateUserPassword', async () => { test('submitPassword() should not have called updateUserPassword', async () => {
const wrapper = shallow(<UserSettingsSecurity {...requiredProps}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...requiredProps}/>);
await (wrapper.instance() as UserSettingsSecurity).submitPassword(); await wrapper.instance().submitPassword();
expect(requiredProps.actions.updateUserPassword).toHaveBeenCalledTimes(0); expect(requiredProps.actions.updateUserPassword).toHaveBeenCalledTimes(0);
}); });
@@ -130,7 +135,7 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
...requiredProps, ...requiredProps,
actions: {...requiredProps.actions, updateUserPassword}, actions: {...requiredProps.actions, updateUserPassword},
}; };
const wrapper = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
const password = 'psw'; const password = 'psw';
const state = { const state = {
@@ -140,7 +145,7 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
}; };
wrapper.setState(state); wrapper.setState(state);
await (wrapper.instance() as UserSettingsSecurity).submitPassword(); await wrapper.instance().submitPassword();
expect(updateUserPassword).toHaveBeenCalled(); expect(updateUserPassword).toHaveBeenCalled();
expect(updateUserPassword).toHaveBeenCalledWith( expect(updateUserPassword).toHaveBeenCalledWith(
@@ -160,9 +165,9 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
preventDefault: jest.fn(), preventDefault: jest.fn(),
}; };
const wrapper = shallow(<UserSettingsSecurity {...requiredProps}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...requiredProps}/>);
wrapper.setState({authorizedApps: []}); wrapper.setState({authorizedApps: []});
(wrapper.instance() as UserSettingsSecurity).deauthorizeApp(event); wrapper.instance().deauthorizeApp(event);
expect(requiredProps.actions.deauthorizeOAuthApp).toHaveBeenCalled(); expect(requiredProps.actions.deauthorizeOAuthApp).toHaveBeenCalled();
expect(requiredProps.actions.deauthorizeOAuthApp).toHaveBeenCalledWith( expect(requiredProps.actions.deauthorizeOAuthApp).toHaveBeenCalledWith(
@@ -177,16 +182,16 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
actions: {...requiredProps.actions, deauthorizeOAuthApp: () => promise}, actions: {...requiredProps.actions, deauthorizeOAuthApp: () => promise},
}; };
const wrapper: any = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
const appId = 'appId'; const appId = 'appId';
const apps = [{id: appId}, {id: '2'}]; const apps = [{id: appId}, {id: '2'}] as OAuthApp[];
const event: any = { const event: any = {
currentTarget: {getAttribute: jest.fn().mockReturnValue(appId)}, currentTarget: {getAttribute: jest.fn().mockReturnValue(appId)},
preventDefault: jest.fn(), preventDefault: jest.fn(),
}; };
wrapper.setState({authorizedApps: apps}); wrapper.setState({authorizedApps: apps});
(wrapper.instance() as UserSettingsSecurity).deauthorizeApp(event); wrapper.instance().deauthorizeApp(event);
await promise; await promise;
@@ -201,13 +206,13 @@ describe('components/user_settings/display/UserSettingsDisplay', () => {
actions: {...requiredProps.actions, deauthorizeOAuthApp: () => promise}, actions: {...requiredProps.actions, deauthorizeOAuthApp: () => promise},
}; };
const wrapper: any = shallow(<UserSettingsSecurity {...props}/>); const wrapper = shallow<SecurityTab>(<SecurityTab {...props}/>);
const event: any = { const event: any = {
currentTarget: {getAttribute: jest.fn().mockReturnValue('appId')}, currentTarget: {getAttribute: jest.fn().mockReturnValue('appId')},
preventDefault: jest.fn(), preventDefault: jest.fn(),
}; };
(wrapper.instance() as UserSettingsSecurity).deauthorizeApp(event); wrapper.instance().deauthorizeApp(event);
await promise; await promise;

Просмотреть файл

@@ -4,7 +4,8 @@
/* eslint-disable max-lines */ /* eslint-disable max-lines */
import React from 'react'; import React from 'react';
import {FormattedDate, FormattedMessage, FormattedTime} from 'react-intl'; import type {IntlShape} from 'react-intl';
import {FormattedDate, FormattedMessage, FormattedTime, injectIntl} from 'react-intl';
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import type {OAuthApp} from '@mattermost/types/integrations'; import type {OAuthApp} from '@mattermost/types/integrations';
@@ -15,14 +16,12 @@ import type {ActionResult} from 'mattermost-redux/types/actions';
import AccessHistoryModal from 'components/access_history_modal'; import AccessHistoryModal from 'components/access_history_modal';
import ActivityLogModal from 'components/activity_log_modal'; import ActivityLogModal from 'components/activity_log_modal';
import ExternalLink from 'components/external_link'; import ExternalLink from 'components/external_link';
import LocalizedIcon from 'components/localized_icon';
import SettingItem from 'components/setting_item'; import SettingItem from 'components/setting_item';
import SettingItemMax from 'components/setting_item_max'; import SettingItemMax from 'components/setting_item_max';
import ToggleModalButton from 'components/toggle_modal_button'; import ToggleModalButton from 'components/toggle_modal_button';
import icon50 from 'images/icon50x50.png'; import icon50 from 'images/icon50x50.png';
import Constants from 'utils/constants'; import Constants from 'utils/constants';
import {t} from 'utils/i18n';
import * as Utils from 'utils/utils'; import * as Utils from 'utils/utils';
import MfaSection from './mfa_section'; import MfaSection from './mfa_section';
@@ -65,6 +64,7 @@ type Props = {
passwordConfig: ReturnType<typeof Utils.getPasswordConfig>; passwordConfig: ReturnType<typeof Utils.getPasswordConfig>;
militaryTime: boolean; militaryTime: boolean;
actions: Actions; actions: Actions;
intl: IntlShape;
}; };
type State = { type State = {
@@ -78,7 +78,7 @@ type State = {
authorizedApps: OAuthApp[]; authorizedApps: OAuthApp[];
}; };
export default class SecurityTab extends React.PureComponent<Props, State> { export class SecurityTab extends React.PureComponent<Props, State> {
constructor(props: Props) { constructor(props: Props) {
super(props); super(props);
this.state = this.getDefaultState(); this.state = this.getDefaultState();
@@ -123,10 +123,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
if (currentPassword === '') { if (currentPassword === '') {
this.setState({ this.setState({
passwordError: Utils.localizeMessage( passwordError: this.props.intl.formatMessage({
'user.settings.security.currentPasswordError', id: 'user.settings.security.currentPasswordError',
'Please enter your current password.', defaultMessage: 'Please enter your current password.',
), }),
serverError: '', serverError: '',
}); });
return; return;
@@ -146,10 +146,11 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
if (newPassword !== confirmPassword) { if (newPassword !== confirmPassword) {
const defaultState = Object.assign(this.getDefaultState(), { const defaultState = Object.assign(this.getDefaultState(), {
passwordError: Utils.localizeMessage( passwordError: this.props.intl.formatMessage({
'user.settings.security.passwordMatchError', id: 'user.settings.security.passwordMatchError',
'The new passwords you entered do not match.', defaultMessage:
), 'The new passwords you entered do not match.',
}),
serverError: '', serverError: '',
}); });
this.setState(defaultState); this.setState(defaultState);
@@ -267,10 +268,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
type='password' type='password'
onChange={this.updateCurrentPassword} onChange={this.updateCurrentPassword}
value={this.state.currentPassword} value={this.state.currentPassword}
aria-label={Utils.localizeMessage( aria-label={this.props.intl.formatMessage({
'user.settings.security.currentPassword', id: 'user.settings.security.currentPassword',
'Current Password', defaultMessage: 'Current Password',
)} })}
/> />
</div> </div>
</div>, </div>,
@@ -293,10 +294,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
type='password' type='password'
onChange={this.updateNewPassword} onChange={this.updateNewPassword}
value={this.state.newPassword} value={this.state.newPassword}
aria-label={Utils.localizeMessage( aria-label={this.props.intl.formatMessage({
'user.settings.security.newPassword', id: 'user.settings.security.newPassword',
'New Password', defaultMessage: 'New Password',
)} })}
/> />
</div> </div>
</div>, </div>,
@@ -319,10 +320,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
type='password' type='password'
onChange={this.updateConfirmPassword} onChange={this.updateConfirmPassword}
value={this.state.confirmPassword} value={this.state.confirmPassword}
aria-label={Utils.localizeMessage( aria-label={this.props.intl.formatMessage({
'user.settings.security.retypePassword', id: 'user.settings.security.retypePassword',
'Retype New Password', defaultMessage: 'Retype New Password',
)} })}
/> />
</div> </div>
</div>, </div>,
@@ -721,10 +722,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
max = ( max = (
<SettingItemMax <SettingItemMax
title={Utils.localizeMessage( title={this.props.intl.formatMessage({
'user.settings.security.method', id: 'user.settings.security.method',
'Sign-in Method', defaultMessage: 'Sign-in Method',
)} })}
extraInfo={extraInfo} extraInfo={extraInfo}
inputs={inputs} inputs={inputs}
serverError={this.state.serverError} serverError={this.state.serverError}
@@ -791,10 +792,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
<SettingItem <SettingItem
active={active} active={active}
areAllSectionsInactive={this.props.activeSection === ''} areAllSectionsInactive={this.props.activeSection === ''}
title={Utils.localizeMessage( title={this.props.intl.formatMessage({
'user.settings.security.method', id: 'user.settings.security.method',
'Sign-in Method', defaultMessage: 'Sign-in Method',
)} })}
describe={describe} describe={describe}
section={SECTION_SIGNIN} section={SECTION_SIGNIN}
updateSection={this.handleUpdateSection} updateSection={this.handleUpdateSection}
@@ -929,10 +930,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
<SettingItem <SettingItem
active={active} active={active}
areAllSectionsInactive={this.props.activeSection === ''} areAllSectionsInactive={this.props.activeSection === ''}
title={Utils.localizeMessage( title={this.props.intl.formatMessage({
'user.settings.security.oauthApps', id: 'user.settings.security.oauthApps',
'OAuth 2.0 Applications', defaultMessage: 'OAuth 2.0 Applications',
)} })}
describe={ describe={
<FormattedMessage <FormattedMessage
id='user.settings.security.oauthAppsDescription' id='user.settings.security.oauthAppsDescription'
@@ -994,7 +995,10 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
type='button' type='button'
className='close' className='close'
data-dismiss='modal' data-dismiss='modal'
aria-label={Utils.localizeMessage('user.settings.security.close', 'Close')} aria-label={this.props.intl.formatMessage({
id: 'user.settings.security.close',
defaultMessage: 'Close',
})}
onClick={this.props.closeModal} onClick={this.props.closeModal}
> >
<span aria-hidden='true'>{'×'}</span> <span aria-hidden='true'>{'×'}</span>
@@ -1003,9 +1007,12 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
className='modal-title' className='modal-title'
> >
<div className='modal-back'> <div className='modal-back'>
<LocalizedIcon <i
className='fa fa-angle-left' className='fa fa-angle-left'
title={{id: t('generic_icons.collapse'), defaultMessage: 'Collapse Icon'}} title={this.props.intl.formatMessage({
id: 'generic_icons.collapse',
defaultMessage: 'Collapse Icon',
})}
onClick={this.props.collapseModal} onClick={this.props.collapseModal}
/> />
</div> </div>
@@ -1044,9 +1051,12 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
dialogType={AccessHistoryModal} dialogType={AccessHistoryModal}
id='viewAccessHistory' id='viewAccessHistory'
> >
<LocalizedIcon <i
className='fa fa-clock-o' className='fa fa-clock-o'
title={{id: t('user.settings.security.viewHistory.icon'), defaultMessage: 'Access History Icon'}} title={this.props.intl.formatMessage({
id: 'user.settings.security.viewHistory.icon',
defaultMessage: 'Access History Icon',
})}
/> />
<FormattedMessage <FormattedMessage
id='user.settings.security.viewHistory' id='user.settings.security.viewHistory'
@@ -1059,9 +1069,12 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
dialogType={ActivityLogModal} dialogType={ActivityLogModal}
id='viewAndLogOutOfActiveSessions' id='viewAndLogOutOfActiveSessions'
> >
<LocalizedIcon <i
className='fa fa-clock-o' className='fa fa-clock-o'
title={{id: t('user.settings.security.logoutActiveSessions.icon'), defaultMessage: 'Active Sessions Icon'}} title={this.props.intl.formatMessage({
id: 'user.settings.security.logoutActiveSessions.icon',
defaultMessage: 'Active Sessions Icon',
})}
/> />
<FormattedMessage <FormattedMessage
id='user.settings.security.logoutActiveSessions' id='user.settings.security.logoutActiveSessions'
@@ -1073,3 +1086,5 @@ export default class SecurityTab extends React.PureComponent<Props, State> {
); );
} }
} }
export default injectIntl(SecurityTab);