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;