@pubsweet/ui
Version:
React component library for use in pubsweet apps
125 lines (93 loc) • 4.79 kB
JavaScript
;
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