verdnatura-chat/app/containers/Status/Status.tsx

31 lines
706 B
TypeScript
Raw Normal View History

import React from 'react';
import { CustomIcon } from '../../lib/Icons';
import { STATUS_COLORS } from '../../constants/colors';
interface IStatus {
status: string;
size: number;
style: any;
}
const Status = React.memo(({ status, size, style, ...props }: IStatus) => {
const name = `status-${ status }`;
const isNameValid = CustomIcon.hasIcon(name);
const iconName = isNameValid ? name : 'status-offline';
const calculatedStyle = [{
width: size, height: size, textAlignVertical: 'center'
}, style];
return (
<CustomIcon
style={calculatedStyle}
size={size}
name={iconName}
color={STATUS_COLORS[status] ?? STATUS_COLORS.offline}
{...props}
/>
);
});
export default Status;