grafana/public/app/features/explore/Time.tsx
Laura Benz d429ec18a0
grafana/ui: convert sass to emotion (#52541)
* refactor: convert .elapsed-time

* refactor: elapsedTime styling not required

* refactor: logs-rows styling not defined, remove classname

* refactor: logs-meta-item__labels styling not defined, remove classname

* refactor: transfer .label-slider styling to its own element

* refactor: clean up .slider styling

* refactor: muted styling not defined, remove classname

* refactor: transfer .space-between styling to its own element + clean up

* refactor: remove icon
2022-07-26 08:31:40 +02:00

37 lines
824 B
TypeScript

import React, { FC } from 'react';
import { toDuration } from '@grafana/data';
export interface TimeProps {
timeInMs: number;
className?: string;
humanize?: boolean;
}
export const Time: FC<TimeProps> = ({ timeInMs, className, humanize }) => {
return <span className={className}>{formatTime(timeInMs, humanize)}</span>;
};
const formatTime = (timeInMs: number, humanize = false): string => {
const inSeconds = timeInMs / 1000;
if (!humanize) {
return `${inSeconds.toFixed(1)}s`;
}
const duration = toDuration(inSeconds, 'seconds');
const hours = duration.hours();
const minutes = duration.minutes();
const seconds = duration.seconds();
if (hours) {
return `${hours}h ${minutes}m ${seconds}s`;
}
if (minutes) {
return `${minutes}m ${seconds}s`;
}
return `${seconds}s`;
};