UNPKG

@rnga/orders

Version:

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

148 lines (117 loc) 2.62 kB
import React, { Component } from 'react'; import PropTypes from 'prop-types'; import Autocomplete, { styles as stylesProto } from 'autocomplete'; import { graphql } from 'react-apollo'; import { expertisers } from 'query'; class ExpertisersSelectField extends Component { static propTypes = { data: PropTypes.object.isRequired, }; state = { } render() { const { data: { objects, }, } = this.props; if(!objects || !objects.length){ return null ; } let options = objects.map(n => { const { id, name, shortname, } = n; return { value: id, label: shortname || name, ...n, } }); // let options = [ // // { // // value: "", // // label: "Выбрать из списка", // // }, // // { // // value: "GreidConfirmed", // // label: "Грейд подтвержден", // // }, // // { // // value: "Sobrano", // // label: "Собран", // // }, // // { // // value: "Vydan", // // label: "Выдан", // // }, // // { // // value: "Otkaz", // // label: "Отказ", // // }, // // { // // value: "OtkazVydan", // // label: "Отказ, выдан", // // }, // ]; const { onChange, onSelect, label, helperText, inputProps, name, value, disabled, style, error, ...other } = this.props; const { opened, } = this.state; let valueText = ""; if (value) { let item = options.find(n => n.value === value); if (item) { valueText = item.label; } } return ( <Autocomplete {...other} items={options} inputProps={{ label, helperText, disabled, style, error, ...inputProps, }} onMenuVisibilityChange={opened => this.setState({ opened, })} onSelect={(value, item) => { // this.setState({ // user: item, // }); if (onChange) { onChange({ target: { name, value, }, }); } onSelect && onSelect(value, item); }} // value={opened ? value : valueText} value={valueText || ""} /> ); } } export default graphql(expertisers)(ExpertisersSelectField);