UNPKG

@financial-times/n-conversion-forms

Version:

Containing jsx components and styles for forms included on Accounts and Acqusition apps (next-signup, next-profile, next-retention, etc).

101 lines (100 loc) 3.91 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Message = Message; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); function Message(_ref) { var title = _ref.title, message = _ref.message, _ref$additional = _ref.additional, additional = _ref$additional === void 0 ? [] : _ref$additional, _ref$actions = _ref.actions, actions = _ref$actions === void 0 ? null : _ref$actions, name = _ref.name, target = _ref.target, isNotice = _ref.isNotice, isError = _ref.isError, isSuccess = _ref.isSuccess, isInform = _ref.isInform, isStaticMessage = _ref.isStaticMessage, isHidden = _ref.isHidden; var additionalMessages = additional.map(function (text, index) { return /*#__PURE__*/_react["default"].createElement("p", { className: "o-message__content--additional", key: index, dangerouslySetInnerHTML: { __html: text } }); }); var oMessageClassNames = (0, _classnames["default"])({ 'o-message': true, 'o-message--inner': !isStaticMessage, 'o-message--notice': isNotice && !isStaticMessage, 'o-message--alert': !isNotice && !isStaticMessage, 'o-message--error': isError, 'o-message--success': !isError && isSuccess, 'o-message--inform': !isError && !isSuccess && isInform, 'o-message--neutral': !isError && !isSuccess && !isInform }); var ncfClassNames = (0, _classnames["default"])('ncf__message', { ncf__hidden: isHidden }); var callToActionsList = actions ? /*#__PURE__*/_react["default"].createElement("div", { className: "o-message__actions" }, actions.map(function (_ref2, index) { var link = _ref2.link, isSecondary = _ref2.isSecondary, text = _ref2.text; return /*#__PURE__*/_react["default"].createElement("a", { href: link, key: index, target: target, className: isSecondary ? 'o-message__actions__secondary' : 'o-message__actions__primary' }, text); })) : null; return /*#__PURE__*/_react["default"].createElement("div", { className: ncfClassNames, "data-message-name": name }, /*#__PURE__*/_react["default"].createElement("div", { className: oMessageClassNames, "data-o-component": "o-message" }, /*#__PURE__*/_react["default"].createElement("div", { className: "o-message__container" }, /*#__PURE__*/_react["default"].createElement("div", { className: "o-message__content" }, /*#__PURE__*/_react["default"].createElement("p", { className: "o-message__content-main" }, title ? /*#__PURE__*/_react["default"].createElement("span", { className: "o-message__content-highlight" }, title) : null, /*#__PURE__*/_react["default"].createElement("span", { className: "o-message__content-detail", dangerouslySetInnerHTML: { __html: message } })), additionalMessages, callToActionsList)))); } var actionType = _propTypes["default"].shape({ link: _propTypes["default"].string.isRequired, isSecondary: _propTypes["default"].bool, text: _propTypes["default"].string, target: _propTypes["default"].oneOf(['_self']) }); Message.propTypes = { title: _propTypes["default"].string, message: _propTypes["default"].string.isRequired, additional: _propTypes["default"].arrayOf(_propTypes["default"].string), actions: _propTypes["default"].arrayOf(actionType), name: _propTypes["default"].string, target: _propTypes["default"].string, isStaticMessage: _propTypes["default"].bool, isNotice: _propTypes["default"].bool, isError: _propTypes["default"].bool, isSuccess: _propTypes["default"].bool, isInform: _propTypes["default"].bool, isHidden: _propTypes["default"].bool };