import React from 'react';
import { Rectangle } from 'recharts';
import theme from '../theme';
import { last } from 'rambda';
export default class Job extends React.PureComponent {
render() {
const {
x,
y,
payload: {
name,
formerStartTime,
formerEndTime,
startTime,
endTime,
delayed
},
xAxis: {
niceTicks,
width: axisWidth
}
} = this.props;
if (!endTime) return null;
const duration = Math.abs(endTime - startTime);
if (!duration) return null;
const formerDuration = Math.abs(
(typeof formerEndTime === 'undefined' ? endTime : formerEndTime)
- (typeof formerStartTime === 'undefined' ? startTime : formerStartTime)
);
// const width = (axisWidth / (niceTicks.length - 1)) * duration;
const width = (axisWidth / ((last(niceTicks) - niceTicks[0]) || 1)) * duration;
const height = theme.gantt.job.height;
// console.log(this.props.payload, axisWidth, niceTicks, duration);
return (
);
}
}
class JobBox extends React.PureComponent {
render() {
const { x, y, width, height } = this.props;
let { duration, name, isDelayed } = this.props;
const { stroke, textColor } = theme.gantt.job;
const fill = isDelayed ? theme.gantt.job.fillError : theme.gantt.job.fill;
return (
{duration}
{name}
);
}
}