Convert status_icon_new.tsx to functional component (#24993)

* Convert  status_icon_new.tsx to functional component

* run the command run npm run fix and npm run test -- -u

* type check error fixed

* revised the changes

* Unintended changes revised.

* Revised changes

* map moved outside of component

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
Muzakir Shah 2023-11-10 14:23:11 +05:00 committed by GitHub
parent a31b899818
commit e130a37199
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,32 +4,25 @@
import React from 'react'; import React from 'react';
type Props = { type Props = {
className: string; className?: string;
status: string; status?: string;
} }
export default class StatusIconNew extends React.PureComponent<Props> { const statusToIconMap: { [key: string]: string } = {
static defaultProps: Props = { online: 'icon-check-circle',
className: '', away: 'icon-clock',
status: '', dnd: 'icon-minus-circle',
}; default: 'icon-circle-outline',
};
render() { const StatusIconNew = ({className = '', status = ''}: Props) => {
const {status, className} = this.props; if (!status) {
return null;
if (!status) {
return null;
}
let iconName = 'icon-circle-outline';
if (status === 'online') {
iconName = 'icon-check-circle';
} else if (status === 'away') {
iconName = 'icon-clock';
} else if (status === 'dnd') {
iconName = 'icon-minus-circle';
}
return <i className={`${iconName} ${className}`}/>;
} }
}
const iconName = statusToIconMap[status] || statusToIconMap.default;
return <i className={`${iconName} ${className}`}/>;
};
export default React.memo(StatusIconNew);