style(ui): humanise duration shown on ingestion page (#9530)

This commit is contained in:
gaurav2733 2023-12-29 12:53:58 +05:30 committed by GitHub
parent 4de2c24249
commit 5321352852
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 5 deletions

View File

@ -4,6 +4,7 @@ import { StyledTable } from '../../../entity/shared/components/styled/StyledTabl
import { ExecutionRequest } from '../../../../types.generated';
import { ButtonsColumn, SourceColumn, StatusColumn, TimeColumn } from './IngestionExecutionTableColumns';
import { SUCCESS } from '../utils';
import { formatDuration } from '../../../shared/formatDuration';
interface Props {
executionRequests: ExecutionRequest[];
@ -34,13 +35,10 @@ export default function IngestionExecutionTable({
render: TimeColumn,
},
{
title: 'Duration (s)',
title: 'Duration',
dataIndex: 'duration',
key: 'duration',
render: (durationMs: number) => {
const seconds = (durationMs && `${durationMs / 1000}s`) || 'None';
return seconds;
},
render: (durationMs: number) => formatDuration(durationMs),
},
{
title: 'Status',

View File

@ -0,0 +1,21 @@
export const formatDuration = (durationMs: number): string => {
if (!durationMs) return 'None';
const seconds = durationMs / 1000;
if (seconds < 60) {
return `${seconds.toFixed(1)} s`;
}
const minutes = Math.floor(seconds / 60);
const remainingSeconds = Math.round(seconds % 60);
if (minutes < 60) {
return `${minutes} min ${remainingSeconds} s`;
}
const hours = Math.floor(minutes / 60);
const remainingMinutes = Math.round(minutes % 60);
return `${hours} hr ${remainingMinutes} min`;
};