lml-main
Version:
This is now a mono repository published into many standalone packages.
41 lines • 2.76 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const react_redux_1 = require("react-redux");
const lodash_1 = require("lodash");
const cosmo_redux_api_1 = require("@lml/cosmo-redux-api");
const cosmoui_1 = require("cosmoui");
const styles = require('./job-incident-form.scss');
class JobIncidentFormComponent extends cosmoui_1.StylableComponent {
render() {
const { impacts, reasons, horizontal, defaultImpactCode, defaultReasonCode, required, } = this.props;
const direction = horizontal ? 'row' : 'column';
const justify = horizontal ? 'space-between' : 'flex-start';
const fieldStyles = horizontal ? { marginRight: this.margin(200) } : {};
const impactProps = {};
const reasonProps = {};
if (defaultImpactCode) {
impactProps.value = lodash_1.find(impacts, (code) => code.code === defaultImpactCode);
}
if (defaultReasonCode) {
reasonProps.value = lodash_1.find(reasons, (code) => code.code === defaultReasonCode);
}
return (React.createElement(cosmoui_1.Row, { id: "postIncidentForm", direction: direction, align: "flex-start", fullWidth: true, justify: justify, className: styles.container },
React.createElement(cosmoui_1.FormGroup, { label: "Impact" },
React.createElement(cosmoui_1.Select, Object.assign({ name: "impact", style: fieldStyles, required: required, className: styles.input, containerClassName: styles.code, fullWidth: true, options: impacts }, impactProps))),
React.createElement(cosmoui_1.FormGroup, { label: "Reason" },
React.createElement(cosmoui_1.Select, Object.assign({ name: "reason", style: fieldStyles, required: required, className: styles.input, containerClassName: styles.code, fullWidth: true, options: reasons }, reasonProps))),
horizontal ? (React.createElement(cosmoui_1.FormGroup, { label: "Comment" },
React.createElement(cosmoui_1.TextInput, { name: "comment", required: false, fullWidth: true, className: styles.input, placeholder: "Add a comment" }))) : (React.createElement(cosmoui_1.Textarea, { name: "comment", required: false, fullWidth: true, className: styles.input, height: 80, placeholder: "Add a comment (optional)" }))));
}
}
JobIncidentFormComponent.defaultProps = {
required: true,
};
const mapStateToProps = (state, ownProps) => ({
impacts: cosmo_redux_api_1.getIncidentImpacts(state),
reasons: cosmo_redux_api_1.getIncidentReasons(state),
});
const mapActionsToProps = {};
exports.JobIncidentForm = react_redux_1.connect(mapStateToProps, mapActionsToProps)(JobIncidentFormComponent);
//# sourceMappingURL=job-incident-form.js.map