import React, { useEffect, useState } from 'react';
import { StatusBullet } from '@rocket.chat/fuselage';
import { useTranslation } from '../../contexts/TranslationContext';
import { Presence } from '../../lib/presence';
export const UserStatus = React.memo(({ small, ...props }) => {
const size = small ? 'small' : 'large';
const t = useTranslation();
switch (props.status) {
case 'online':
return ;
case 'busy':
return ;
case 'away':
return ;
case 'Offline':
return ;
default:
return ;
}
});
export const Busy = (props) => ;
export const Away = (props) => ;
export const Online = (props) => ;
export const Offline = (props) => ;
export const Loading = (props) => ;
export const colors = {
busy: 'danger-500',
away: 'warning-600',
online: 'success-500',
offline: 'neutral-600',
};
export const usePresence = (uid, presence) => {
const [status, setStatus] = useState(presence);
useEffect(() => {
const handle = ({ status = 'offline' }) => {
setStatus(status);
};
Presence.listen(uid, handle);
return () => {
Presence.stop(uid, handle);
};
}, [uid]);
return status;
};
export const ReactiveUserStatus = React.memo(({ uid, presence, ...props }) => {
const status = usePresence(uid, presence);
return ;
});