UNPKG

storybook-jira-addon

Version:

An extra panel to show JIRA tickets concerning certain components.

115 lines (100 loc) 5.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _theming = require("@storybook/theming"); var _parseCreatedDate = _interopRequireDefault(require("../../helpers/parseCreatedDate")); var _AvatarImage = _interopRequireDefault(require("./AvatarImage")); var _Icon = _interopRequireDefault(require("./Icon")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PropertyBar = function PropertyBar(_ref) { var fetchId = _ref.fetchId, fetchData = _ref.fetchData, fetchingState = _ref.fetchingState, reporter = _ref.reporter, assignedTo = _ref.assignedTo, priority = _ref.priority, created = _ref.created, lastUpdated = _ref.lastUpdated; var PropertyBar = _theming.styled.div({ display: 'flex', width: '100%', flexWrap: 'wrap' }); var HeaderItem = _theming.styled.div({ display: 'flex', alignItems: 'center', width: 'fit-content', margin: '10px 20px 10px 0', "&:nth-of-type(6)": { flex: 1, justifyContent: 'flex-end', marginRight: 0 } }); var HeaderItemValue = _theming.styled.span({ fontWeight: 300, textIndent: '5px' }); var parseUpdatedDate = function parseUpdatedDate(date) { var lastUpdated = new Date(date); var currentDate = new Date(); var differenceInSeconds = currentDate - lastUpdated; var differenceInDays = Math.floor(differenceInSeconds / (1000 * 3600 * 24)); var suffix = differenceInDays === 1 ? 'day' : 'days'; return " ".concat(differenceInDays, " ").concat(suffix, " ago"); }; var RefreshButton = _theming.styled.button(function (_ref2) { var theme = _ref2.theme; return { border: 0, borderRadius: '3em', cursor: 'pointer', display: 'inline-block', overflow: 'hidden', padding: '3px 8px', transition: 'all 150ms ease-out', verticalAlign: 'top', userSelect: 'none', margin: 0, backgroundColor: theme.base === 'light' ? '#EAF3FC' : theme.color.border, boxShadow: theme.base === 'light' ? "".concat(theme.color.border, " 0 0 0 1px inset") : "".concat(theme.color.darker, " 0 0 0 1px inset"), color: theme.color.secondary, '&:hover': { background: '#EAF3FC' }, '&:focus': { boxShadow: "".concat(theme.color.secondary, " 0 0 0 1px inset"), outline: 'none' }, svg: { display: 'block', height: 14, width: 14 } }; }); return /*#__PURE__*/_react["default"].createElement(PropertyBar, null, /*#__PURE__*/_react["default"].createElement(HeaderItem, null, "Reporter:", reporter ? reporter !== null && reporter !== void 0 && reporter.avatar ? /*#__PURE__*/_react["default"].createElement(_AvatarImage["default"], { src: reporter.avatar, alt: reporter === null || reporter === void 0 ? void 0 : reporter.name }) : /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, reporter === null || reporter === void 0 ? void 0 : reporter.name) : /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, "...")), /*#__PURE__*/_react["default"].createElement(HeaderItem, null, "Assigned to:", assignedTo ? assignedTo !== null && assignedTo !== void 0 && assignedTo.avatar ? /*#__PURE__*/_react["default"].createElement(_AvatarImage["default"], { src: assignedTo.avatar, alt: assignedTo === null || assignedTo === void 0 ? void 0 : assignedTo.name }) : /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, (assignedTo === null || assignedTo === void 0 ? void 0 : assignedTo.name) || 'not assigned yet') : /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, "...")), /*#__PURE__*/_react["default"].createElement(HeaderItem, null, "Priority:", priority ? (priority === null || priority === void 0 ? void 0 : priority.label) === 'Medium' ? /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, "-") : /*#__PURE__*/_react["default"].createElement(_AvatarImage["default"], { src: priority === null || priority === void 0 ? void 0 : priority.icon, alt: priority === null || priority === void 0 ? void 0 : priority.label, className: "avatar-priority" }) : /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, "...")), /*#__PURE__*/_react["default"].createElement(HeaderItem, null, "Created on:", /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, created ? (0, _parseCreatedDate["default"])(created) : '...')), /*#__PURE__*/_react["default"].createElement(HeaderItem, null, "Last updated:", /*#__PURE__*/_react["default"].createElement(HeaderItemValue, null, lastUpdated ? parseUpdatedDate(lastUpdated) : '...')), fetchId && fetchData && /*#__PURE__*/_react["default"].createElement(HeaderItem, null, /*#__PURE__*/_react["default"].createElement(RefreshButton, { title: "Refresh", onClick: function onClick() { return fetchData(fetchId); } }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], { icon: "sync", className: "icon-refresh".concat(fetchingState ? ' icon-refreshing' : '') })))); }; var _default = PropertyBar; exports["default"] = _default;