import { MaybeNumber } from 'ontime-types'; import { getProgress } from '../../utils/getProgress'; import { cx } from '../../utils/styleUtils'; import './MultiPartProgressBar.scss'; interface MultiPartProgressBar { now: MaybeNumber; complete: MaybeNumber; normalColor: string; warning?: MaybeNumber; warningColor: string; danger?: MaybeNumber; dangerColor: string; hidden?: boolean; hideOvertime?: boolean; ignoreCssOverride?: boolean; className?: string; } export default function MultiPartProgressBar(props: MultiPartProgressBar) { const { now, complete, normalColor, warning, warningColor, danger, dangerColor, hidden, hideOvertime, ignoreCssOverride, className = '', } = props; const percentRemaining = 100 - getProgress(now, complete); const dangerWidth = danger ? 100 - getProgress(danger, complete) : 0; const warningWidth = warning ? 100 - dangerWidth - getProgress(warning, complete) : 0; const isOvertime = now !== null && now < 0; const showOvertime = isOvertime && !hideOvertime; return (