lml-main
Version:
This is now a mono repository published into many standalone packages.
49 lines • 2.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const cosmoui_1 = require("cosmoui");
const ts_utils_1 = require("@lml/ts-utils");
const lodash_1 = require("lodash");
const timeslot_1 = require("../../../jobs/components/timeslot");
const job_stop_item_1 = require("./job-stop-item");
const styles = require('./job-stop.scss');
const completed = (completedTime) => completedTime
? `Collected: ${ts_utils_1.formatDate(completedTime)}`
: null;
const customer = (stop) => `${lodash_1.get(stop, 'contact.name', '')} (${concat(lodash_1.get(stop, 'contact.phone', ''), lodash_1.get(stop, 'contact.mobile', ''))})`;
const instructions = (stop) => lodash_1.get(stop, 'instructions', '');
const concat = (...strs) => strs.join('\n').split('\n').filter(Boolean).join(', ');
const date = (stop) => ts_utils_1.formatDate(stop.stopTime.earliestTime);
const type = (stop) => stop.type === 'collection' ? 'Collect' : (stop.type === 'delivery' ? 'Deliver' : '');
class JobStop extends React.Component {
constructor() {
super(...arguments);
this.renderTimeslot = () => (React.createElement("strong", null,
React.createElement(timeslot_1.JobStopTimeSlot, { id: `job-details-${this.props.stop.type}`, refId: this.props.job.refId, stop: this.props.stop }),
"| ",
lodash_1.get(stop, 'metadata.company')));
}
render() {
const { stop, completedTime } = this.props;
if (!stop)
return null;
return (React.createElement(cosmoui_1.Column, null,
React.createElement(job_stop_item_1.JobStopItem, { icon: "Delivery", iconSize: 12 },
React.createElement("span", { className: styles.header },
React.createElement("strong", null,
"STOP ",
stop.order,
" : ",
type(stop),
" | "),
React.createElement("span", { id: `job-details-${stop.type}-stop-date` }, date(stop)))),
React.createElement(job_stop_item_1.JobStopItem, null, this.renderTimeslot()),
React.createElement(job_stop_item_1.JobStopItem, null,
React.createElement("span", { id: `job-details-${this.props.stop.type}-stop` }, concat(lodash_1.get(stop, 'location.address.streets', []).join(', '), lodash_1.get(stop, 'location.address.town', ''), lodash_1.get(stop, 'stop.location.address.postcode', '').toUpperCase()))),
React.createElement(job_stop_item_1.JobStopItem, { icon: "Notes" }, instructions(stop)),
React.createElement(job_stop_item_1.JobStopItem, { icon: "Customer" }, customer(stop)),
React.createElement(job_stop_item_1.JobStopItem, { icon: "Calendar" }, completed(completedTime))));
}
}
exports.JobStop = JobStop;
//# sourceMappingURL=job-stop.js.map