UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

200 lines (155 loc) 6.17 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _taggedTemplateLiteral2 = require('babel-runtime/helpers/taggedTemplateLiteral'); var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _templateObject = (0, _taggedTemplateLiteral3.default)(['\n ', '\n'], ['\n ', '\n']), _templateObject2 = (0, _taggedTemplateLiteral3.default)(['\n ', '\n background-color: ', ';\n overflow: scroll;\n transform: translate(0, ', ');\n transition: transform 400ms ', ';\n box-shadow: 0 0 3px ', ';\n\n & > * {\n margin: 0 40px 40px 40px;\n }\n'], ['\n ', '\n background-color: ', ';\n overflow: scroll;\n transform: translate(0, ', ');\n transition: transform 400ms ', ';\n box-shadow: 0 0 3px ', ';\n\n & > * {\n margin: 0 40px 40px 40px;\n }\n']), _templateObject3 = (0, _taggedTemplateLiteral3.default)(['\n margin-top: 40px;\n'], ['\n margin-top: 40px;\n']), _templateObject4 = (0, _taggedTemplateLiteral3.default)(['\n\n'], ['\n\n']); exports.add_modal = add_modal; exports.dismiss_front_modal = dismiss_front_modal; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _styledComponents = require('styled-components'); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _polished = require('polished'); var _button = require('components/utils/button'); var _button2 = _interopRequireDefault(_button); var _auto_bind = require('common/auto_bind'); var _auto_bind2 = _interopRequireDefault(_auto_bind); var _styles = require('common/styles'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var modals = []; var after_update = function after_update() {}; function add_modal(modal) { modals.push(modal); after_update(); } var dismissers = []; function dismiss_front_modal() { var dismiss = dismissers.pop(); dismiss(); } function dismiss_front_modal_immediately() { modals.pop(); after_update(); } var Modals = function (_Component) { (0, _inherits3.default)(Modals, _Component); function Modals(props) { (0, _classCallCheck3.default)(this, Modals); var _this = (0, _possibleConstructorReturn3.default)(this, (Modals.__proto__ || (0, _getPrototypeOf2.default)(Modals)).call(this, props)); (0, _auto_bind2.default)(_this); return _this; } (0, _createClass3.default)(Modals, [{ key: 'componentDidMount', value: function componentDidMount() { after_update = this.after_update; } }, { key: 'componentWillUpdate', value: function componentWillUpdate() { after_update = this.after_update; } }, { key: 'after_update', value: function after_update() { this.forceUpdate(); } }, { key: 'render_modal', value: function render_modal(modal, id) { return _react2.default.createElement(Modal, { key: id, component: modal }); } }, { key: 'render', value: function render() { if (modals.length) { return _react2.default.createElement( Frame, null, modals.map(this.render_modal) ); } return null; } }]); return Modals; }(_react.Component); exports.default = Modals; var Modal = function (_Component2) { (0, _inherits3.default)(Modal, _Component2); function Modal(props) { (0, _classCallCheck3.default)(this, Modal); var _this2 = (0, _possibleConstructorReturn3.default)(this, (Modal.__proto__ || (0, _getPrototypeOf2.default)(Modal)).call(this, props)); _this2.state = { mounted: false }; (0, _auto_bind2.default)(_this2); return _this2; } (0, _createClass3.default)(Modal, [{ key: 'componentDidMount', value: function componentDidMount() { var _this3 = this; dismissers.push(this.dismiss); setTimeout(function () { return _this3.setState({ mounted: true }); }, 10); } }, { key: 'dismiss', value: function dismiss() { setTimeout(dismiss_front_modal_immediately, 400); this.setState({ mounted: false }); } }, { key: 'render', value: function render() { var mounted = this.state.mounted; var Content = this.props.component; return _react2.default.createElement( Container, { mounted: mounted }, _react2.default.createElement( Header, null, _react2.default.createElement( _button2.default, { onClick: dismiss_front_modal, back: true }, 'Retour' ) ), _react2.default.createElement( ContentContainer, null, _react2.default.createElement(Content, null) ) ); } }]); return Modal; }(_react.Component); var Frame = _styledComponents2.default.div(_templateObject, (0, _polished.position)('absolute', '0', '0', '0', '0')); var Container = _styledComponents2.default.div(_templateObject2, (0, _polished.position)('absolute', '0', '0', '0', '0'), (0, _styles.color)('black', 'translucent'), function (_ref) { var mounted = _ref.mounted; return mounted ? '0' : '100%'; }, function (_ref2) { var mounted = _ref2.mounted; return mounted ? _styles.desceleration : _styles.acceleration; }, (0, _styles.color)('black', 'normal', 0.25)); var Header = _styledComponents2.default.div(_templateObject3); var ContentContainer = _styledComponents2.default.div(_templateObject4);