import gql from 'graphql-tag'
import { Query, Mutation } from 'react-apollo'
import { adopt } from 'react-adopt'
import { InterfaceFormFields } from './Interface'
import InstrumentCommand, {
  InstrumentCommandFormFields,
  InstrumentCommandFields
} from './InstrumentCommand'
import File, { FileFormFields, FileFields } from './File'
import Gallery from './Gallery'
import { INTERFACES_FULL } from './InterfaceList'
const CREATE_INSTRUMENT = gql`
  mutation CREATE_INSTRUMENT(
    $id: ID
    $name: String!
    $manufacturer: String!
    $description: String
    $picture: ID
    $interfaces: [String]!
    $documents: [FileUpload]!
    $commands: [InstrumentCommandInput]!
  ) {
    createInstrument(
      id: $id
      name: $name
      manufacturer: $manufacturer
      description: $description
      picture: $picture
      interfaces: $interfaces
      documents: $documents
      commands: $commands
    ) {
      id
    }
  }
`
const INSTRUMENT_QUERY = gql`
  query INSTRUMENT_QUERY($id: ID!) {
    instrument(id: $id) {
      id
      name
      manufacturer
      description
      picture
      documents {
        id
        path
        name
        description
        filename
        mimetype
        size
      }
      interfaces
      commands {
        id
        tag
        name
        description
        readString
        writeString
      }
      parameters {
        id
        tag
        name
        description
        type
        values
      }
    }
  }
`
const INSTRUMENTS_QUERY = gql`
  query INSTRUMENTS_QUERY {
    instruments {
      id
      name
      manufacturer
      description
      picture
    }
  }
`
const InstrumentFields = {
  id: null,
  name: '',
  manufacturer: '',
  description: '',
  picture: '',
  documents: [],
  interfaces: [],
  commands: [],
  parameters: []
}
class InstrumentForm extends React.Component {
  state = {
    ...InstrumentFields,
    ...this.props.instrument
  }
  toState = event => {
    this.setState({ [event.target.name]: event.target.value })
  }
  toSubState = (name, index, subState) => {
    this.setState({
      [name]: [
        ...this.state[name].slice(0, index),
        subState,
        ...this.state[name].slice(index + 1)
      ]
    })
  }
  render () {
    return (
      
{instrument.description}
{instrument.picture}
Instrument not found.
) } export default Instrument export { InstrumentFields, InstrumentForm } export { INSTRUMENT_QUERY, INSTRUMENTS_QUERY }