UNPKG

gather-content-ui

Version:
85 lines (83 loc) 4.67 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.CommentText = CommentText; var _react = _interopRequireWildcard(require("react")); var _react2 = _interopRequireDefault(require("linkifyjs/react")); var _classnames = _interopRequireDefault(require("classnames")); var _ = require("./.."); var _TooltipWrapper = _interopRequireDefault(require("../TooltipWrapper")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } // @ts-expect-error TS(7016): Could not find a declaration file for module 'link... Remove this comment to see the full error message // eslint-disable-next-line react/prop-types function BlurBottom(_ref) { var className = _ref.className; return /*#__PURE__*/_react["default"].createElement("span", { className: "gui-comment-blur-bottom absolute h-8 w-full top-0 left-0 mt-24 bg-blur-neutral-98-bottom group-hover:bg-blur-grey-bottom gui-conversation__text__cutoff ".concat(className) }); } function EditedText() { return /*#__PURE__*/_react["default"].createElement("span", { className: "weight-semi-bold text-neutral-primary" }, " (Edited)"); } function CommentText(_ref2) { var children = _ref2.children, users = _ref2.users, showFullText = _ref2.showFullText, currentUser = _ref2.currentUser, hasBeenEdited = _ref2.hasBeenEdited; var _useContext = (0, _react.useContext)(_.Comment.Context), isEditing = _useContext.isEditing; var highlightMentions = function highlightMentions() { var pattern = /(\B@\w+)+/gi; var strArr = children.split(pattern); return strArr.map(function (subStr) { if (subStr.match(pattern)) { var username = subStr.substr(1); var matches = users.filter(function (user) { return user.display === username; }); if (matches.length) { var _matches$ = matches[0], display = _matches$.display, name = _matches$.name, pending = _matches$.pending; var mentionsClass = (0, _classnames["default"])("font-semi-bold", { "text-purple-primary": display === (currentUser ? currentUser.display : ""), "border-0 border-b-[1px] border-dashed": pending }); return /*#__PURE__*/_react["default"].createElement("span", { key: subStr, title: name, className: mentionsClass }, pending ? /*#__PURE__*/_react["default"].createElement(_TooltipWrapper["default"], { tooltipText: "Invite pending", wrapperClassName: "inline-flex" }, subStr) : subStr); } } return subStr; }); }; var classNames = (0, _classnames["default"])("text-neutral-20 break-words whitespace-pre-line relative", { "overflow-visible": showFullText, "overflow-hidden max-h-32": !showFullText }); return isEditing ? null : /*#__PURE__*/_react["default"].createElement("div", { className: classNames }, /*#__PURE__*/_react["default"].createElement("p", { className: "gui-comment-text m-0 text-sm break-words" }, /*#__PURE__*/_react["default"].createElement(_react2["default"], null, highlightMentions()), hasBeenEdited && /*#__PURE__*/_react["default"].createElement(EditedText, null), /*#__PURE__*/_react["default"].createElement(BlurBottom, { className: showFullText ? "hidden" : "" }))); } CommentText.defaultProps = { showFullText: true, hasBeenEdited: false }; //# sourceMappingURL=CommentText.js.map