const CartTotal = () => { const items = useSelector(state => state.cart.items); const total = items.reduce((sum, item) => sum + item.quantity * item.price, 0); return ( <div className={styles.text}> Cart total <span className={styles.price}><Price value={total}/></span> </div> ); }
export default function Header() { const countBag = useSelector((state) => state.cart.length); return ( <Container> <Link to="/"> <img src={logo} alt="Rocketshoes" /> </Link> <Cart to="/cart"> <div> <strong>Meu Carrinho</strong> <span>{countBag} Itens</span> </div> <MdShoppingBasket size={36} color="#fff" /> </Cart> </Container> ); }
const OrderItems = () => { const items = useSelector(state => state.cart.items); return ( <div className={styles.items}> <OrderItemsHeader/> { items.length ? items.map(item => <OrderItem key={item.id} item={item}/>) : <span className={styles.empty}>Your cart is empty</span> } </div> ); }
const Cart = ({id, image, name, price, removeFromCart, isInCart }) => { const cart = useSelector((state) => state.cart); const dispatch = useDispatch(); removeFromCart = (item)=> { console.log(item); dispatch({ type: 'cart/REMOVE', payload: item }); }; return ( <div className='cart-body'> <h3>cart {cart.count}</h3> <ul> {cart.items.length > 0 && cart.items.map((item) => { return <CartItem {...item} removeFromCart={removeFromCart}/> } )} </ul> <div className="cart-total">Total <span>{cart.total}</span> $</div> </div> ) }
connect(state => ({ cartSize: state.cart.length, }))(Header)
export default function Home() { const [products, setProducts] = useState([]); const amount = useSelector((state) => state.cart.reduce((qtde, product) => { qtde[product.id] = product.amount; return qtde;
const OrderInfo = () => { const note = useSelector(state => state.cart.note); const dispatch = useDispatch(); return ( <div className={styles.info}> <Input id='note' name='note' type='text' placeholder='Some words to our team' label='Add a note' value={note} onChange={e => dispatch(updateNote(e.target.value))} /> </div> ) }
function ProductItem({ product }) { const cartCount = useSelector(state => state.cart.reduce( (initialValue, productCount) => ({ ...initialValue, [productCount.id]: productCount.amount, }), {} ) ); const dispatch = useDispatch(); return ( <Container> <ProductImage source={{ uri: product.image }} /> <ProductTitle>{product.title}</ProductTitle> <ProductPrice>{product.priceFormatted}</ProductPrice> <ProductButton onPress={() => dispatch(addToCartRequest(product.id))}> <IconContent> <Icon name="add-shopping-cart" color="#FFF" size={20} /> <TextIcon>{cartCount[product.id] || 0}</TextIcon> </IconContent> <TextButton>Adicionar</TextButton> </ProductButton> </Container> ); }
export default function Header({ navigation }) { const cartSize = useSelector(state => state.cart.length); return ( <Wrapper> <LogoContent onPress={() => navigation.navigate('Home')}> <LogoImage source={logoImg} /> </LogoContent> <ContentCart onPress={() => navigation.navigate('Cart')}> <Icon name="shopping-basket" color="#FFF" size={24} /> {cartSize > 0 && <Badge number={cartSize} />} </ContentCart> </Wrapper> ); }
connect(state => ({ cartSize: state.cart.length, }))(Header)
export default function Header() { const cartSize = useSelector(state => state.cart.length); return ( <Container> <Link to="/"> <img src={logo} alt="Rocket Shoes" /> </Link> <Cart to="/cart"> <div> <strong>My cart</strong> <span>{cartSize} items</span> </div> <MdShoppingBasket size={36} color="#FFF" /> </Cart> </Container> ); }
export default function Header() { const cartSize = useSelector(state => state.cart.length); return ( <Container> <Link to="/"> <img src={logo} alt="LucasShoes" /> </Link> <Cart to="/cart"> <div> <strong>Meu Carrinho</strong> <span>{cartSize} itens</span> </div> <MdShoppingBasket size={36} color="#fff" /> </Cart> </Container> ); }
export default function Header() { const cartSize = useSelector( state => state.cart.length ); return ( <Container> <Link to="/"> <img src={logo} alt="" /> </Link> <Cart to="/cart"> <div> <strong>Meu carrinho</strong> <span>{cartSize} itens</span> </div> <MdShoppingBasket size={36} color="#fff" /> </Cart> </Container> ); }
export default function Header() { const cartSize = useSelector(state => state.cart.length); return ( <Container> <Link to="/"> <img src={logo} alt="Rocket Shoes" /> </Link> <Cart to="/cart"> <div> <strong>My cart</strong> <span>{cartSize} items</span> </div> <MdShoppingBasket size={36} color="#FFF" /> </Cart> </Container> ); }