From a6af043686e4375d7944e91cae3d5b63c59edab0 Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Thu, 22 Mar 2018 16:29:31 -0400 Subject: Migrate to render props --- frontend/components/Items.js | 59 +++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 20 deletions(-) (limited to 'frontend/components/Items.js') diff --git a/frontend/components/Items.js b/frontend/components/Items.js index 1b0c8bb..1f4918f 100644 --- a/frontend/components/Items.js +++ b/frontend/components/Items.js @@ -1,9 +1,20 @@ import React from 'react'; -import { compose } from 'react-apollo'; +import { Query } from 'react-apollo'; import styled from 'styled-components'; +import PropTypes from 'prop-types'; import Pagination from './Pagination'; import Item from './Item'; -import { itemEnhancer } from '../enhancers/enhancers'; +import { perPage } from '../config'; +import { ALL_ITEMS_QUERY } from '../queries/index'; + +// export const itemEnhancer = graphql(ALL_ITEMS_QUERY, { +// name: 'itemsQuery', +// options({ page }) { +// return { +// variables: , +// }; +// }, +// }); const Items = styled.div` display: grid; @@ -18,30 +29,38 @@ const Center = styled.div` `; class ItemList extends React.Component { - something() {} + static propTypes = { + page: PropTypes.number.isRequired, + }; + componentDidUpdate(lastProps) { + if (lastProps.page === this.props.page) return; + // update the query + console.log('This fires, and should update the query'); + } render() { - const { loading, error } = this.props.itemsQuery; - // 1 - if (loading) { - return
Loading
; - } - - // 2 - if (error) { - console.log(this.props.itemsQuery.error); - return
Error
; - } - // 3 - const itemsToRender = this.props.itemsQuery.items; - return ( -
+
- {itemsToRender.map((item, i) => )} + + {({ data, error, loading, variables }) => { + if (loading) return
Loading
; + if (error) return
Error
; + return ( + {data.items.map((item, i) => )} + ); + }} +
); } } -export default compose(itemEnhancer)(ItemList); +// export default compose(itemEnhancer)(ItemList); +export default ItemList; -- cgit v1.3