import { Box, Margins, ButtonGroup } from '@rocket.chat/fuselage'; import { ContextualbarTitle, ContextualbarClose, ContextualbarHeader, ContextualbarScrollableContent, ContextualbarSkeletonBody, InfoPanelLabel, InfoPanelText, } from '@rocket.chat/ui-client'; import { useEndpoint, useRouter } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; import type { HTMLAttributes } from 'react'; import { useTranslation } from 'react-i18next'; import AgentInfoAction from './AgentInfoAction'; import { useRemoveAgent } from './hooks/useRemoveAgent'; import { UserInfoAvatar, UserInfoUsername } from '../../../components/UserInfo'; import { UserStatus } from '../../../components/UserStatus'; import { MaxChatsPerAgentDisplay } from '../additionalForms'; export type AgentInfoProps = { uid: string; } & Omit, 'is'>; const AgentInfo = ({ uid }: AgentInfoProps) => { const { t } = useTranslation(); const router = useRouter(); const getAgentById = useEndpoint('GET', '/v1/livechat/users/agent/:_id', { _id: uid }); const { data, isPending, isError } = useQuery({ queryKey: ['livechat-getAgentInfoById', uid], queryFn: async () => getAgentById(), refetchOnWindowFocus: false, }); const handleDelete = useRemoveAgent(uid); if (isPending) { return ; } if (isError) { return {t('User_not_found')}; } const { username, statusLivechat, status: userStatus } = data?.user; return ( <> {t('User_Info')} router.navigate('/omnichannel/agents')} /> {username && ( )} router.navigate(`/omnichannel/agents/edit/${uid}`)} icon='edit' /> } /> {statusLivechat && ( <> {t('Livechat_status')} {statusLivechat === 'available' ? t('Available') : t('Not_Available')} )} {MaxChatsPerAgentDisplay && } ); }; export default AgentInfo;