UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

97 lines (75 loc) 3.22 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _getValidProps = _interopRequireDefault(require("@helpscout/react-utils/dist/getValidProps")); var _PreviewCard = _interopRequireDefault(require("../PreviewCard/PreviewCard.Context")); var _classnames = _interopRequireDefault(require("classnames")); var _MessageContent = require("./Message.Content.css"); var _jsxRuntime = require("react/jsx-runtime"); var MessageContent = function MessageContent(props) { var children = props.children, className = props.className, from = props.from, isNote = props.isNote, ltr = props.ltr, read = props.read, rtl = props.rtl, timestamp = props.timestamp, to = props.to, rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["children", "className", "from", "isNote", "ltr", "read", "rtl", "timestamp", "to"]); var componentClassName = (0, _classnames.default)('c-MessageContent', isNote && 'is-note', className); var innerComponentClassName = (0, _classnames.default)('c-MessageContent__content', from && 'is-from', isNote && 'is-note', ltr && !rtl && 'is-ltr', !ltr && rtl && 'is-rtl', to && 'is-to'); var chatProps = { from: from, ltr: ltr, read: read, rtl: rtl, timestamp: timestamp, to: to }; var contextProps = { isNote: isNote }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MessageContent.ContentUI, (0, _extends2.default)({}, chatProps, { className: componentClassName, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PreviewCard.default.Provider, { value: contextProps, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _extends2.default)({}, (0, _getValidProps.default)(rest), { className: innerComponentClassName, children: children })) }) })); }; MessageContent.defaultProps = { 'data-cy': 'MessageContent' }; MessageContent.propTypes = { /** Custom class names to be added to the component. */ className: _propTypes.default.string, /** Provides author information and applies "From" styles. */ from: _propTypes.default.any, /** Applies the "Note" theme styles. */ isNote: _propTypes.default.bool, /** Applies left-to-right text styles. */ ltr: _propTypes.default.bool, /** Determines if the Message is read. */ read: _propTypes.default.bool, /** Applies right-to-left text styles. */ rtl: _propTypes.default.bool, /** Timestamp for the Message. */ timestamp: _propTypes.default.string, /** Provides author information and applies "To" styles. */ to: _propTypes.default.any, /** Callback when clicked. */ onClick: _propTypes.default.func, /** Data attr for Cypress tests. */ 'data-cy': _propTypes.default.string }; var _default = MessageContent; exports.default = _default;