import { Skeleton } from '@rocket.chat/fuselage'; import React from 'react'; import s from 'underscore.string'; import Subtitle from '../../../components/Subtitle'; import { useTranslation } from '../../../contexts/TranslationContext'; import { useFormatMemorySize } from '../../../hooks/useFormatMemorySize'; import { useFormatDuration } from '../../../hooks/useFormatDuration'; import DescriptionList from './DescriptionList'; const formatCPULoad = (load) => { if (!load) { return null; } const [oneMinute, fiveMinutes, fifteenMinutes] = load; return `${ s.numberFormat(oneMinute, 2) }, ${ s.numberFormat(fiveMinutes, 2) }, ${ s.numberFormat(fifteenMinutes, 2) }`; }; const RuntimeEnvironmentSection = React.memo(function RuntimeEnvironmentSection({ statistics, isLoading }) { const s = (fn) => (isLoading ? : fn()); const t = useTranslation(); const formatMemorySize = useFormatMemorySize(); const formatDuration = useFormatDuration(); return {t('Runtime_Environment')}} > {s(() => statistics.os.type)} {s(() => statistics.os.platform)} {s(() => statistics.os.arch)} {s(() => statistics.os.release)} {s(() => statistics.process.nodeVersion)} {s(() => statistics.mongoVersion)} {s(() => statistics.mongoStorageEngine)} {s(() => formatDuration(statistics.os.uptime))} {s(() => formatCPULoad(statistics.os.loadavg))} {s(() => formatMemorySize(statistics.os.totalmem))} {s(() => formatMemorySize(statistics.os.freemem))} {s(() => statistics.os.cpus.length)} ; }); export default RuntimeEnvironmentSection;