Guest User

Untitled

a guest
Jun 22nd, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.54 KB | None | 0 0
  1. // @flow
  2.  
  3. import * as React from 'react'
  4. import { compose, pure, type HOC } from 'recompose'
  5. import { Query } from 'react-apollo'
  6. import { connect } from 'react-redux'
  7. import { withStyles } from '@material-ui/core/styles'
  8. import { withRouter } from 'react-router'
  9. import { isEmpty, find, map } from 'lodash'
  10.  
  11. import TotalBarOrder from './totalBarOrder'
  12.  
  13. import styles, {
  14. Main,
  15. MainEmpty,
  16. CardWrapper,
  17. CardContainer,
  18. TableItem,
  19. PhotoContainer,
  20. Photo,
  21. TextContainer,
  22. ProductText,
  23. ItemCounterWrap,
  24. AddIcon,
  25. RemoveIcon,
  26. DestroyIcon,
  27. NumberButtonAmount,
  28. RemoveLink,
  29. EmptyContainer,
  30. BasketIcon,
  31. EmptyTitle,
  32. EmptyText
  33. } from './styles'
  34.  
  35. import cartActions from '../../redux/cart'
  36.  
  37. import QUERY from './query'
  38.  
  39. import noPhoto from '../../images/icons/no-photo.png'
  40.  
  41. type CartProps = {
  42. confirmDialog: boolean,
  43. setConfirmDialog: Function,
  44. createOrder: Function,
  45. products: Array<Object>,
  46. creating: boolean,
  47. minicart: boolean,
  48. mutations: {
  49. createOrder: Function,
  50. },
  51. };
  52.  
  53. const mapStateToProps = state => ({ cart: state.cart })
  54. const mapDispatchToProps = { ...cartActions }
  55.  
  56. const enhance: HOC<*, CartProps> = compose(
  57. pure,
  58. connect(mapStateToProps, mapDispatchToProps),
  59. withRouter,
  60. withStyles(styles)
  61. )
  62.  
  63. const OrderResume = enhance(
  64. ({
  65. cart,
  66. history,
  67. cartModifyItem,
  68. asideCart
  69. }) => (
  70. <Query
  71. query={QUERY}
  72. variables={{
  73. where: {
  74. $and: {
  75. id: {
  76. $in: map(cart.items, 'id')
  77. }
  78. }
  79. }
  80. }}
  81. >
  82. {({ data, loading }) => {
  83. console.log('props cart.items', cart.items)
  84. console.log('props data', data)
  85. const { allProducts = {} } = data
  86. if (isEmpty(allProducts)) {
  87. return (
  88. <MainEmpty elevation={0} minicart={asideCart ? 1 : 0}>
  89. <EmptyContainer>
  90. <BasketIcon />
  91. <EmptyTitle>Tu canasta está vacía</EmptyTitle>
  92. <EmptyText align='center'>
  93. Te invitamos a visitar nuestras marcas y categorías para agregar productos a tu canasta
  94. </EmptyText>
  95. </EmptyContainer>
  96. <TotalBarOrder minicart={asideCart} />
  97. </MainEmpty>
  98. )
  99. }
  100. console.log('allProducts', allProducts)
  101. return (
  102. <Main minicart={asideCart}>
  103. <CardWrapper elevation={0} minicart={asideCart ? 1 : 0}>
  104. <CardContainer>
  105. {allProducts.map(item => {
  106. console.log('cart.items', cart.items)
  107. const cartItem = find(cart.items, { id: item.id })
  108. console.log('cartItem', cartItem)
  109. console.log('item', item)
  110. return (
  111. <TableItem minicart={asideCart} key={`CartItem:${item.id}`}>
  112. <PhotoContainer minicart={asideCart}>
  113. <Photo src={item.reference && item.reference.image ? item.reference.image.thumb : noPhoto} />
  114. </PhotoContainer>
  115.  
  116. <TextContainer minicart={asideCart}>
  117. <ProductText>{item.reference.name}</ProductText>
  118.  
  119. <RemoveLink
  120. onClick={() => cartModifyItem(item, false, true)}
  121. >
  122. Eliminar
  123. </RemoveLink>
  124. </TextContainer>
  125.  
  126. <ItemCounterWrap>
  127. {cartItem.quantity > 1 && (
  128. <RemoveIcon
  129. disabled={cartItem.quantity <= 1}
  130. onClick={() => cartModifyItem(item, false)}
  131. />
  132. )}
  133.  
  134. {cartItem.quantity <= 1 && (
  135. <DestroyIcon
  136. onClick={() => cartModifyItem(item, false, true)}
  137. />
  138. )}
  139.  
  140. <NumberButtonAmount>
  141. {cartItem.quantity}
  142. </NumberButtonAmount>
  143.  
  144. <AddIcon
  145. disabled={cartItem.quantity >= item.stock}
  146. onClick={() => cartModifyItem(item, true)}
  147. />
  148. </ItemCounterWrap>
  149. </TableItem>
  150. )
  151. })}
  152. </CardContainer>
  153. </CardWrapper>
  154. <TotalBarOrder minicart={asideCart} />
  155.  
  156. </Main>
  157. )
  158. }}
  159. </Query>
  160. )
  161. )
  162.  
  163. export default OrderResume
Add Comment
Please, Sign In to add comment