import React from 'react' import { Query } from 'react-apollo' import { Page, Loading, LoadingIcon } from '../ui' import { GET_MANUSCRIPT } from '../operations' import SubmissionHeader from '../SubmissionHeader' import Review from './Review' import { CURRENT_REVIEW } from './operations' const ReviewWithHeader = SubmissionHeader(Review) const ReviewPage = ({ match, ...props }) => ( <Query fetchPolicy="cache-and-network" query={GET_MANUSCRIPT} variables={{ id: match.params.id }} > {({ data: { manuscript }, loading: loadingOne }) => ( <Query query={CURRENT_REVIEW} variables={{ manuscriptId: match.params.id }} > {({ data: { currentReview }, loading, refetch }) => { if (loadingOne || !manuscript) { return ( <Page> <Loading> <LoadingIcon /> </Loading> </Page> ) } return ( <ReviewWithHeader key={`${manuscript.id}${manuscript.status}`} manuscript={manuscript} match={match} reload={() => refetch()} review={currentReview} {...props} /> ) }} </Query> )} </Query> ) export default ReviewPage