UNPKG

react-cm-ui

Version:
160 lines (139 loc) 5.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _personPanelConstants = require("../personPanel/personPanelConstants"); var _constants = require("../../global/constants"); var _constants2 = require("./constants"); var _grid = _interopRequireDefault(require("../../layout/grid")); var _icon = _interopRequireDefault(require("../icon")); var _makeStyles = _interopRequireDefault(require("../../styles/makeStyles")); var _milestonePopoverContent = _interopRequireDefault(require("./milestonePopoverContent")); var _popover = _interopRequireDefault(require("../popover")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var propTypes = { firstMinistryJoinDate: _constants2.FIRST_MINISTRY_JOIN_DATE_PROP_TYPE, classes: _propTypes["default"].shape({ icon: _propTypes["default"].string, root: _propTypes["default"].string }).isRequired, disablePopover: _constants2.DISABLE_POPOVER_PROP_TYPE, isInMinistry: _constants2.IS_IN_MINISTRY_PROP_TYPE, iconSize: _constants2.ICON_SIZE_PROP_TYPE, inverse: _constants2.INVERSE_PROP_TYPE, isFemale: _propTypes["default"].bool, isMale: _propTypes["default"].bool, recordType: _personPanelConstants.RECORD_TYPE_PROP_TYPE, removeInMinistryColumn: _constants2.REMOVE_IN_MINISTRY_COLUMN_PROP_TYPE }; var defaultProps = { disablePopover: _constants2.DISABLE_POPOVER_DEFAULT_PROP, firstMinistryJoinDate: null, isInMinistry: null, iconSize: _constants2.ICON_SIZE_DEFAULT_PROP, inverse: _constants2.INVERSE_DEFAULT_PROP, isFemale: _propTypes["default"].bool, isMale: _propTypes["default"].bool, recordType: _personPanelConstants.RECORD_TYPE_DEFAULT_PROP, removeInMinistryColumn: _constants2.REMOVE_IN_MINISTRY_COLUMN_DEFAULT_PROP }; var useStyles = (0, _makeStyles["default"])(function (theme) { return { root: { '& $isInMinistry': { '&$isAdult': { '&$genderFemale .icon-use-path': { fill: "".concat((0, _personPanelConstants.RECORD_TYPE_COLOR)({ gender: 'f', recordType: 'adult', theme: theme })) }, '&$genderMale .icon-use-path': { fill: "".concat((0, _personPanelConstants.RECORD_TYPE_COLOR)({ gender: 'm', recordType: 'adult', theme: theme })) }, '&$genderUndefined .icon-use-path': { fill: "".concat((0, _personPanelConstants.RECORD_TYPE_COLOR)({ recordType: 'adult', theme: theme })) } }, '&$isChild .icon-use-path': { fill: "".concat((0, _personPanelConstants.RECORD_TYPE_COLOR)({ recordType: 'child', theme: theme }), " !important") }, '&$isStudent .icon-use-path': { fill: "".concat((0, _personPanelConstants.RECORD_TYPE_COLOR)({ recordType: 'student', theme: theme }), " !important") } } }, genderFemale: {}, genderMale: {}, genderUndefined: {}, icon: {}, isInMinistry: { '&.icon': { opacity: 1 } }, isAdult: {}, isChild: {}, isStudent: {} }; }); function GridColumnMinistry(props) { var _ClassNames; var firstMinistryJoinDate = props.firstMinistryJoinDate, disablePopover = props.disablePopover, iconSize = props.iconSize, inverse = props.inverse, isFemale = props.isFemale, isInMinistry = props.isInMinistry, isMale = props.isMale, recordType = props.recordType, removeInMinistryColumn = props.removeInMinistryColumn; var classes = useStyles(props); if (removeInMinistryColumn) { return null; } var ministryIcon = /*#__PURE__*/_react["default"].createElement(_icon["default"], { className: (0, _classnames["default"])(classes.iconInMinistry, classes.icon, (_ClassNames = {}, _defineProperty(_ClassNames, classes.genderFemale, isFemale), _defineProperty(_ClassNames, classes.genderMale, isMale), _defineProperty(_ClassNames, classes.genderUndefined, !isFemale && !isMale), _defineProperty(_ClassNames, classes.isAdult, recordType === 'adult'), _defineProperty(_ClassNames, classes.isChild, recordType === 'child'), _defineProperty(_ClassNames, classes.isInMinistry, isInMinistry), _defineProperty(_ClassNames, classes.isStudent, recordType === 'student'), _ClassNames)), compact: true, inverse: inverse, size: iconSize, title: !isInMinistry && 'Not active in Ministry', type: "serving-opportunity" }); var popoverNode = !disablePopover && isInMinistry && firstMinistryJoinDate ? /*#__PURE__*/_react["default"].createElement(_popover["default"], { content: /*#__PURE__*/_react["default"].createElement(_milestonePopoverContent["default"], { title: "Active in Ministry", milestonesDates: [{ label: 'Since', date: firstMinistryJoinDate }] }), mouseEvent: "onMouseEnter" }, ministryIcon) : null; return /*#__PURE__*/_react["default"].createElement(_grid["default"].Column, { className: (0, _classnames["default"])("".concat(_constants.BEM_PERSON_CORE_MILESTONES, "--in_ministry_column"), classes.root) }, popoverNode || ministryIcon); } GridColumnMinistry.propTypes = propTypes; GridColumnMinistry.defaultProps = defaultProps; var _default = GridColumnMinistry; exports["default"] = _default;