UNPKG

react-cm-ui

Version:
160 lines (139 loc) 5.93 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 = { activeInMissionsDate: _constants2.ACTIVE_IN_MISSIONS_DATE_PROP_TYPE, classes: _propTypes["default"].shape({ icon: _propTypes["default"].string, root: _propTypes["default"].string }).isRequired, disablePopover: _constants2.DISABLE_POPOVER_PROP_TYPE, iconSize: _constants2.ICON_SIZE_PROP_TYPE, inverse: _constants2.INVERSE_PROP_TYPE, isActiveInMissions: _constants2.IS_ACTIVE_IN_MISSIONS_PROP_TYPE, isFemale: _propTypes["default"].bool, isMale: _propTypes["default"].bool, recordType: _personPanelConstants.RECORD_TYPE_PROP_TYPE, removeInTripsColumn: _constants2.REMOVE_IN_TRIPS_COLUMN_PROP_TYPE }; var defaultProps = { activeInMissionsDate: null, disablePopover: _constants2.DISABLE_POPOVER_DEFAULT_PROP, iconSize: _constants2.ICON_SIZE_DEFAULT_PROP, inverse: _constants2.INVERSE_DEFAULT_PROP, isActiveInMissions: null, isFemale: _propTypes["default"].bool, isMale: _propTypes["default"].bool, recordType: _personPanelConstants.RECORD_TYPE_DEFAULT_PROP, removeInTripsColumn: _constants2.REMOVE_IN_TRIPS_COLUMN_DEFAULT_PROP }; var useStyles = (0, _makeStyles["default"])(function (theme) { return { root: { '& $isActiveInMissions': { '&$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: {}, isActiveInMissions: { '&.icon': { opacity: 1 } }, isAdult: {}, isChild: {}, isStudent: {} }; }); function GridColumnMissions(props) { var _ClassNames; var activeInMissionsDate = props.activeInMissionsDate, disablePopover = props.disablePopover, iconSize = props.iconSize, inverse = props.inverse, isFemale = props.isFemale, isActiveInMissions = props.isActiveInMissions, isMale = props.isMale, recordType = props.recordType, removeInTripsColumn = props.removeInTripsColumn; var classes = useStyles(props); if (removeInTripsColumn) { return null; } var missionsIcon = /*#__PURE__*/_react["default"].createElement(_icon["default"], { className: (0, _classnames["default"])(classes.iconInTrips, classes.icon, (_ClassNames = {}, _defineProperty(_ClassNames, classes.genderFemale, isFemale), _defineProperty(_ClassNames, classes.genderMale, isMale), _defineProperty(_ClassNames, classes.genderUndefined, !isFemale && !isMale), _defineProperty(_ClassNames, classes.isActiveInMissions, isActiveInMissions), _defineProperty(_ClassNames, classes.isAdult, recordType === 'adult'), _defineProperty(_ClassNames, classes.isChild, recordType === 'child'), _defineProperty(_ClassNames, classes.isStudent, recordType === 'student'), _ClassNames)), compact: true, inverse: inverse, size: iconSize, title: !isActiveInMissions && 'Not active in Missions', type: "shoe-prints" }); var popoverNode = !disablePopover && isActiveInMissions && activeInMissionsDate ? /*#__PURE__*/_react["default"].createElement(_popover["default"], { content: /*#__PURE__*/_react["default"].createElement(_milestonePopoverContent["default"], { title: "Active in Missions", milestonesDates: [{ label: 'Since', date: activeInMissionsDate }] }), mouseEvent: "onMouseEnter" }, missionsIcon) : null; return /*#__PURE__*/_react["default"].createElement(_grid["default"].Column, { className: (0, _classnames["default"])("".concat(_constants.BEM_PERSON_CORE_MILESTONES, "--in_missions_column"), classes.root) }, popoverNode || missionsIcon); } GridColumnMissions.propTypes = propTypes; GridColumnMissions.defaultProps = defaultProps; var _default = GridColumnMissions; exports["default"] = _default;