UNPKG

@rnga/orders

Version:

## Get schema from @prisma-cms 1. yarn get-api-schema -e http://localhost:4000 2. yarn build-api-fragments

441 lines (331 loc) 13.3 kB
'use strict'; exports.__esModule = true; exports.UsersAutocomplete = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _class, _temp2; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _templateObject = _taggedTemplateLiteralLoose(['\n query users(\n $where: UserWhereInput!\n $orderBy: UserOrderByInput\n ){\n users(\n where: $where\n orderBy: $orderBy\n ){\n id\n username\n # firstname\n # lastname\n fullname\n image\n }\n }\n'], ['\n query users(\n $where: UserWhereInput!\n $orderBy: UserOrderByInput\n ){\n users(\n where: $where\n orderBy: $orderBy\n ){\n id\n username\n # firstname\n # lastname\n fullname\n image\n }\n }\n']); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _autocomplete = require('autocomplete'); var _autocomplete2 = _interopRequireDefault(_autocomplete); var _Avatar = require('Avatar'); var _Avatar2 = _interopRequireDefault(_Avatar); var _List = require('material-ui/List'); var _List2 = _interopRequireDefault(_List); var _graphqlTag = require('graphql-tag'); var _graphqlTag2 = _interopRequireDefault(_graphqlTag); var _recompose = require('recompose'); var _materialUi = require('material-ui'); var _IconButton = require('material-ui/IconButton'); var _IconButton2 = _interopRequireDefault(_IconButton); var _Done = require('material-ui-icons/Done'); var _Done2 = _interopRequireDefault(_Done); var _Clear = require('material-ui-icons/Clear'); var _Clear2 = _interopRequireDefault(_Clear); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; } var styles = _extends({}, _autocomplete.styles, { menuListItemText: _extends({}, _autocomplete.styles.menuListItemText, { display: "flex", flexDirection: "row", alignItems: "center", fontWeight: "normal", fontSize: "1rem" }) }); var usersQuery = (0, _graphqlTag2.default)(_templateObject); var UsersAutocomplete = exports.UsersAutocomplete = (_temp2 = _class = function (_Component) { _inherits(UsersAutocomplete, _Component); function UsersAutocomplete() { var _temp, _this, _ret; _classCallCheck(this, UsersAutocomplete); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = { value: "", user: undefined, opened: false }, _this.onSelect = function (value, item) { _this.setState({ user: item }); var onSelect = _this.props.onSelect; return onSelect ? onSelect(value, item) : null; }, _temp), _possibleConstructorReturn(_this, _ret); } UsersAutocomplete.prototype.onChange = function onChange(event) { var _this2 = this; var value = event.target.value; this.setState({ value: value }, function () { return _this2.loadData(); }); }; UsersAutocomplete.prototype.loadData = function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var value, client, _props, exclude, propValue, users, where; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: value = this.state.value; client = this.context.client; _props = this.props, exclude = _props.exclude, propValue = _props.value; users = []; where = value ? { OR: [{ id: propValue }, { fullname_contains: value }, { // firstname_contains: $query // }, { // lastname_contains: $query // }, { email_contains: value }] } : {}; if (exclude && exclude.length) { where.id_not_in = exclude; } // if (value) { _context.next = 8; return client.query({ query: usersQuery, variables: { where: where, orderBy: "fullname_ASC" } }).then(function (r) { var users = r.data.users; return users; }).catch(console.error); case 8: users = _context.sent; // } this.setState({ users: users }); case 10: case 'end': return _context.stop(); } } }, _callee, this); })); function loadData() { return _ref.apply(this, arguments); } return loadData; }(); // componentWillMount() { // const { // value, // } = this.props; // this.state = { // ...this.state, // value, // }; // super.componentWillMount && super.componentWillMount(); // } UsersAutocomplete.prototype.componentDidMount = function componentDidMount() { this.loadData(); _Component.prototype.componentDidMount && _Component.prototype.componentDidMount.call(this); }; UsersAutocomplete.prototype.submit = function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { var user, onSubmit; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: user = this.state.user; onSubmit = this.props.onSubmit; _context2.next = 4; return onSubmit(user).catch(console.error); case 4: this.resetData(); case 5: case 'end': return _context2.stop(); } } }, _callee2, this); })); function submit() { return _ref2.apply(this, arguments); } return submit; }(); UsersAutocomplete.prototype.resetData = function resetData() { this.setState({ user: null, value: "", users: [] }); }; UsersAutocomplete.prototype.renderUser = function renderUser(item) { var fullname = item.fullname, username = item.username; var text = fullname || username; return _react2.default.createElement( _react.Fragment, null, _react2.default.createElement(_Avatar2.default, { user: item, size: 'small', style: { marginRight: 5 } }), ' ', text ); }; UsersAutocomplete.prototype.render = function render() { var _this3 = this; var _props2 = this.props, classes = _props2.classes, onSubmit = _props2.onSubmit, propValue = _props2.value, inputProps = _props2.inputProps, other = _objectWithoutProperties(_props2, ['classes', 'onSubmit', 'value', 'inputProps']); var onFocus = other.onFocus, error = other.error, helperText = other.helperText; inputProps = inputProps ? _extends({}, inputProps) : {}; inputProps = _extends({ onFocus: onFocus, error: error, helperText: helperText }, inputProps); var _state = this.state, value = _state.value, users = _state.users, user = _state.user, opened = _state.opened; var items = []; if (users) { users.map(function (user) { var value = user.id, fullname = user.fullname, username = user.username; items.push(_extends({}, user, { value: value, label: fullname || username })); // items.push(user); }); if (!user && (value || propValue)) { user = users.find(function (n) { return n.id === value || n.id === propValue; }); } } return _react2.default.createElement(_autocomplete2.default, _extends({}, other, { inputProps: inputProps, onChange: function onChange(event) { return _this3.onChange(event); }, value: !opened && user ? user.fullname || user.username : value || "", items: items, onSelect: this.onSelect, onMenuVisibilityChange: function onMenuVisibilityChange(opened) { return _this3.setState({ opened: opened }); } // renderInput={!opened && user // ? // props => { // return <div // style={{ // display: "flex", // flexDirection: "row", // flexWrap: "nowrap", // alignItems: "center", // }} // > // {this.renderUser(user)} // {onSubmit // ? // <Fragment> // <IconButton // style={{ // width: 34, // height: 34, // }} // onClick={event => this.submit()} // > // <DoneIcon // style={{ // color: "green", // }} // /> // </IconButton> // <IconButton // style={{ // width: 34, // height: 34, // }} // onClick={event => this.resetData()} // > // <ClearIcon // style={{ // color: "red", // }} // /> // </IconButton> // </Fragment> // : // null // } // </div> // } // : // undefined // } , renderItem: function renderItem(item, isHighlighted, style) { // const text = getItemText(item); var label = item.label; var text = label; return _react2.default.createElement( _List.ListItem, { key: item.value, className: [classes.menuListItem, isHighlighted || item.label === value || item.value === value ? "actived" : ""].join(" ") }, _react2.default.createElement( 'div', { className: classes.menuListItemText }, _this3.renderUser(item) ) ); } })); }; return UsersAutocomplete; }(_react.Component), _class.contextTypes = { client: _propTypes2.default.object.isRequired }, _temp2); UsersAutocomplete.propTypes = process.env.NODE_ENV !== "production" ? { classes: _propTypes2.default.object.isRequired, // Кого исключить из результатов поиска exclude: _propTypes2.default.array, // Выполнение при подтверждении onSubmit: _propTypes2.default.func } : {}; exports.default = (0, _materialUi.withStyles)(styles)(UsersAutocomplete);