guesstimate/client/src/components/estimation-range.tsx

35 lines
1.1 KiB
TypeScript
Raw Normal View History

import ProjectTimeUnit from "./project-time-unit";
2020-07-09 13:00:42 +02:00
import { getRoundUpEstimations } from "../models/params";
2020-04-22 22:07:52 +02:00
import { Project } from "../models/project";
2020-07-09 13:00:42 +02:00
import React, { Fragment,FunctionComponent } from "react";
2020-04-22 22:07:52 +02:00
import { Estimation } from "../hooks/use-project-estimations";
export interface EstimationRangeProps {
project: Project,
estimation: Estimation
}
2020-07-09 13:00:42 +02:00
export const EstimationRange: FunctionComponent<EstimationRangeProps> = ({ project, estimation }) => {
const roundUp = getRoundUpEstimations(project);
2020-04-23 14:00:56 +02:00
let e: number|string = estimation.e;
let sd: number|string = estimation.sd;
let max = e+sd;
let min = Math.max(e-sd, 0);
if (roundUp) {
sd = Math.ceil(sd);
e = Math.ceil(e);
max = Math.ceil(max);
min = Math.ceil(min);
} else {
sd = sd.toFixed(2);
e = e.toFixed(2);
2020-04-21 20:45:47 +02:00
}
return (
<Fragment>
2020-04-21 20:45:47 +02:00
<abbr title={`max: ${max.toFixed(2)}, min: ${min.toFixed(2)}`}>{`${e} ± ${sd}`}</abbr>&nbsp;<ProjectTimeUnit project={project} />
</Fragment>
);
}
export default EstimationRange;