import { percentOf } from 'App/utils'; import styles from './barRow.module.css'; import tableStyles from './timeTable.module.css'; import React from 'react'; const formatTime = (time) => (time < 1000 ? `${time.toFixed(2)}ms` : `${time / 1000}s`); interface Props { resource: { time: number; ttfb?: number; duration?: number; key: string; }; popup?: boolean; timestart: number; timewidth: number; } // TODO: If request has no duration, set duration to 0.2s. Enforce existence of duration in the future. const BarRow = ({ resource: { time, ttfb = 0, duration = 200, key }, popup = false, timestart = 0, timewidth, }: Props) => { const timeOffset = time - timestart; ttfb = ttfb || 0; // TODO fix the tooltip const content = ( {ttfb != null && (
{'Waiting (TTFB)'}
{formatTime(ttfb)}
)}
{'Content Download'}
{formatTime(duration - ttfb)}
); const trigger = (
); if (!popup) return (
{' '} {trigger}{' '}
); return (
{trigger}
); }; BarRow.displayName = 'BarRow'; export default BarRow;