Guest User

Untitled

a guest
Jun 24th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. export const REVIEW_HIGHLIGHT_QUERY = gql`
  2. ${BookHighlighReview.fragments.review}
  3. query($bookId: MongoID!) {
  4. reviews: bookReviewConnection(
  5. filter: { bookId: $bookId }
  6. first: 3
  7. sort: CREATED_AT_DESC
  8. ) {
  9. count
  10. edges {
  11. node {
  12. ...BookHighlighReview__BookReview
  13. }
  14. }
  15. }
  16. }
  17. `
  18. type ReviewEdges = Array<{ node: BookReviewItemData }>
  19. type ReviewHighlightDataPropTypes = {
  20. children: (reviews: ReviewEdges, loading: boolean) => JSX.Element
  21. bookId: string
  22. }
  23. export const ReviewHighlightData: React.SFC<ReviewHighlightDataPropTypes> = ({
  24. children,
  25. bookId
  26. }) => (
  27. bookId ? <Query query={REVIEW_HIGHLIGHT_QUERY} variables={{bookId}}>
  28. {({ loading, data }) => {
  29. if (data && data.reviews) {
  30. return children(data.reviews.edges, loading)
  31. } else {
  32. return children([], loading)
  33. }
  34. }}
  35. </Query> : <div data-message="no-book-id" />
  36. )
  37.  
  38. // usage
  39. <ReviewHighlightData bookId={book._id}>
  40. {(reviews) => (
  41. <BookHighlighReview onWriteReviewClick={this.onWriteReviewClick} bookId={book._id} review={reviews} />
  42. )}
  43. </ReviewHighlightData>
Add Comment
Please, Sign In to add comment