UNPKG

lml-main

Version:

This is now a mono repository published into many standalone packages.

41 lines 2.76 kB
"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