import { BoxProps, chakra, HStack, Text } from '@chakra-ui/react'; import { ChartBarIcon, ChartPieIcon, UsersIcon, } from '@heroicons/react/24/outline'; import { useDashboard } from 'stores'; import { FC } from 'react'; import { useTranslation } from 'react-i18next'; import { useQuery } from 'react-query'; import { fetch } from 'service/http'; import { formatBytes, numberWithCommas } from 'utils/formatByte'; import { StatisticsCardInLine, StatisticsQueryKey } from 'components/statistics-card'; const TotalUsersIcon = chakra(UsersIcon, { baseStyle: { w: 5, h: 5, position: 'relative', zIndex: '2', }, }); const NetworkIcon = chakra(ChartBarIcon, { baseStyle: { w: 5, h: 5, position: 'relative', zIndex: '2', }, }); const MemoryIcon = chakra(ChartPieIcon, { baseStyle: { w: 5, h: 5, position: 'relative', zIndex: '2', }, }); export const Statistics: FC = (props) => { const { version } = useDashboard(); const { data: systemData } = useQuery({ queryKey: StatisticsQueryKey, queryFn: () => fetch('/system'), refetchInterval: 5000, onSuccess: ({ version: currentVersion }) => { if (version !== currentVersion) useDashboard.setState({ version: currentVersion }); }, }); const { t } = useTranslation(); return ( {numberWithCommas(systemData.users_active)} / {numberWithCommas(systemData.total_user)} ) } icon={} /> } /> {formatBytes(systemData.mem_used, 1, true)[0]} {formatBytes(systemData.mem_used, 1, true)[1]} /{' '} {formatBytes(systemData.mem_total, 1)} ) } icon={} /> ); };