@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
JavaScript
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);