UNPKG

@pubsweet/ui

Version:

React component library for use in pubsweet apps

125 lines (93 loc) 4.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _atoms = require("../atoms"); var _modal = require("./modal"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _templateObject3() { var data = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n justify-content: space-around;\n width: 100%;\n\n button {\n height: 40px;\n width: 120px;\n }\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = _taggedTemplateLiteral(["\n font-weight: 700;\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = _taggedTemplateLiteral(["\n align-items: center;\n border-radius: 5px;\n background-color: #fff;\n display: flex;\n flex-direction: column;\n padding-bottom: 16px;\n width: 400px;\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } function HooksComponent(_ref) { var hideModal = _ref.hideModal; var customLogic = function customLogic() { hideModal(); }; return /*#__PURE__*/_react["default"].createElement(Root, null, /*#__PURE__*/_react["default"].createElement(Title, null, "Hooks implementation"), /*#__PURE__*/_react["default"].createElement(Buttons, null, /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: hideModal }, "Close"), /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: customLogic }, "Agree"))); } function HigherOrderComponent(_ref2) { var hideModal = _ref2.hideModal; var customLogic = function customLogic() { hideModal(); }; return /*#__PURE__*/_react["default"].createElement(Root, null, /*#__PURE__*/_react["default"].createElement(Title, null, "HOCs implementation"), /*#__PURE__*/_react["default"].createElement(Buttons, null, /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: hideModal }, "Close"), /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: customLogic }, "Agree"))); } function ExampleComponent(_ref3) { var hideModal = _ref3.hideModal, title = _ref3.title; var customLogic = function customLogic() { hideModal(); }; return /*#__PURE__*/_react["default"].createElement(Root, null, /*#__PURE__*/_react["default"].createElement(Title, null, title), /*#__PURE__*/_react["default"].createElement(Buttons, null, /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: hideModal }, "Close"), /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: customLogic }, "Agree"))); } var ModalExamples = (0, _modal.withModal)({ component: HigherOrderComponent })(function (props) { var ctx = (0, _modal.useModal)({ component: HooksComponent }); return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h2", null, "Using hooks"), /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: ctx.showModal }, "Open with hooks"), /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement("h2", null, "Using render props"), /*#__PURE__*/_react["default"].createElement(_modal.Modal, { component: ExampleComponent, title: "Render props implementation" }, function (showModal) { return /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: showModal }, "Open with render props"); }), /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement("h2", null, "Using the higher order component"), /*#__PURE__*/_react["default"].createElement(_atoms.Button, { onClick: props.showModal }, "Open with HOCs!")); }); var Modals = function Modals() { return /*#__PURE__*/_react["default"].createElement(_modal.ModalProvider, null, /*#__PURE__*/_react["default"].createElement("h2", null, "Modal examples"), /*#__PURE__*/_react["default"].createElement(ModalExamples, null)); }; var _default = Modals; // #region styles exports["default"] = _default; var Root = _styledComponents["default"].div(_templateObject()); var Title = _styledComponents["default"].h2(_templateObject2()); var Buttons = _styledComponents["default"].div(_templateObject3()); // #endregion