The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/components/UserStatus/UserStatus.tsx

28 lines
1.1 KiB

import { StatusBullet } from '@rocket.chat/fuselage';
import React, { memo, ComponentProps, ReactElement } from 'react';
import { useTranslation } from '../../contexts/TranslationContext';
export type UserStatusProps = {
small?: boolean;
statusText?: string;
} & ComponentProps<typeof StatusBullet>;
const UserStatus = ({ small, status, statusText, ...props }: UserStatusProps): ReactElement => {
const size = small ? 'small' : 'large';
const t = useTranslation();
switch (status) {
case 'online':
return <StatusBullet size={size} status={status} title={statusText || t('Online')} {...props} />;
case 'busy':
return <StatusBullet size={size} status={status} title={statusText || t('Busy')} {...props} />;
case 'away':
return <StatusBullet size={size} status={status} title={statusText || t('Away')} {...props} />;
case 'offline':
return <StatusBullet size={size} status={status} title={statusText || t('Offline')} {...props} />;
default:
return <StatusBullet size={size} title={t('Loading')} {...props} />;
}
};
export default memo(UserStatus);