Guest User

Untitled

a guest
Jun 24th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. import React, { Component } from "react";
  2. import { Query } from "react-apollo";
  3. import "./App.css";
  4. import Repos from "./components/repos";
  5. import { trendingRepositoriesGQLQuery } from "./data/query";
  6. import moment from "moment";
  7.  
  8. class App extends Component {
  9. render() {
  10. const date = new moment(new Date()).subtract(1, "weeks");
  11. const formattedDate = date.format("YYYY-MM-DD");
  12. const query = `created:>${formattedDate} sort:stars-desc`;
  13. return (
  14. <div>
  15. <h1>Last Week Trending Repositories</h1>
  16. <Query
  17. notifyOnNetworkStatusChange={true}
  18. query={trendingRepositoriesGQLQuery}
  19. variables={{
  20. query
  21. }}
  22. >
  23. {({ data, loading, error, fetchMore }) => {
  24. if (error) return <p>{error.message}</p>;
  25. const search = data.search;
  26.  
  27. return (
  28. <Repos
  29. loading={loading}
  30. entries={search}
  31. onLoadMore={() =>
  32. fetchMore({
  33. variables: {
  34. query,
  35. cursor: search.pageInfo.endCursor
  36. },
  37. updateQuery: (prevResult, { fetchMoreResult }) => {
  38. const newEdges = fetchMoreResult.search.edges;
  39. const pageInfo = fetchMoreResult.search.pageInfo;
  40. return newEdges.length
  41. ? {
  42. search: {
  43. __typename: prevResult.search.__typename,
  44. edges: [...prevResult.search.edges, ...newEdges],
  45. pageInfo
  46. }
  47. }
  48. : prevResult;
  49. }
  50. })
  51. }
  52. />
  53. );
  54. }}
  55. </Query>
  56. </div>
  57. );
  58. }
  59. }
  60.  
  61. export default App;
Add Comment
Please, Sign In to add comment