import styled from 'styled-components' import gql from 'graphql-tag' import { Mutation, Query } from 'react-apollo' const CREATE_PROJECT = gql` mutation CREATE_PROJECT($name: String!, $abbreviation: String!, $description: String) { createProject(name: $name, abbreviation: $abbreviation, description: $description) { id } } ` const QUERY_PROJECTS = gql` query QUERY_PROJECTS { projects { id name abbreviation description files { id path name description filename mimetype size } versions { id name changes date } } } ` const ProjectSelector = props => ( {({ data, loading, error }) => { if (error) return (

Error loading project: ${error.message}

) if (loading) return (

Loading data...

) if (!data || !data.projects.length) return (

No project found.

) if (!props.value) props.onChange({ target: { name: 'project', value: data.projects[0].id } }) const selector = ( ) return selector }}
) class Project extends React.Component { state = { id: null, name: '', abbreviation: '', description: '', } toState = event => { this.setState({ [event.target.name]: event.target.value }) } render() { return ( {(createProject, { data, error, loading }) => (
{ event.preventDefault() const { data } = await createProject() this.state.id = data.createProject.id }}>

Project Setup