import { Box, Button, ButtonGroup, Callout, Margins, ProgressBar, Skeleton, StatesAction, StatesIcon, StatesSubtitle, ToggleSwitch, } from '@rocket.chat/fuselage'; import { ContextualbarContent, ContextualbarFooter } from '@rocket.chat/ui-client'; import { useEndpoint, useSetting } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; import { Trans, useTranslation } from 'react-i18next'; import { useIsEnterprise } from '../../../hooks/useIsEnterprise'; import { links } from '../../../lib/links'; import { useActiveConnections } from '../../hooks/useActiveConnections'; const CustomUserStatusService = () => { const { t } = useTranslation(); const result = useActiveConnections(); const presenceDisabled = useSetting('Presence_broadcast_disabled', false); const togglePresenceServiceEndpoint = useEndpoint('POST', '/v1/presence.enableBroadcast'); const disablePresenceService = useMutation({ mutationFn: () => togglePresenceServiceEndpoint(), }); const { data: license, isPending: licenseIsLoading } = useIsEnterprise(); if (result.isPending || disablePresenceService.isPending || licenseIsLoading) { return ( ); } if (result.isError || disablePresenceService.isError) { return ( {t('Unable_to_load_active_connections')} result.refetch()}> {t('Retry')} ); } const { current, max, percentage } = result.data; return ( <>
{t('Service_status')} disablePresenceService.mutate()} /> {t('Active_connections')} {license?.isEnterprise ? current : `${current}/${max}`} {!license?.isEnterprise && 80 ? 'danger' : 'success'} />} {presenceDisabled && ( {t('Service_disabled_description')} )}
{license?.isEnterprise ? ( <> {t('Premium_cap_description')} For larger amounts of active connections you can consider our multiple instance solutions . ) : ( <> {t('Community_cap_description')} {t('Premium_cap_description')} )}
{!license?.isEnterprise && ( )} ); }; export default CustomUserStatusService;