commerce_cart_api-8.x-1.4/tests/modules/commerce_cart_reactjs/lib/components/cart-block/index.js

tests/modules/commerce_cart_reactjs/lib/components/cart-block/index.js
import React, {Component} from 'react';
import {baseUrl} from "../../utils";
import superagent from 'superagent';
import Cart from "./cart";

class CartBlock extends Component {
  constructor(props) {
    super(props);
    this.state = {
      loaded: false,
      expanded: false,
      count: 0,
      carts: [],
    };
    this.onClickExpand = this.onClickExpand.bind(this);
  }
  getCarts() {
    console.log('Getting carts');
    const url = `${baseUrl}/cart?_format=json`;
    superagent
      .get(url)
      .end((err, { body }) => {
        let count = 0;
        for (let i in body) {
          count += body[i].order_items.length;
        }
        this.setState({
          loaded: true,
          count: count,
          carts: body.length > 0 ? body : [],
        });
      })
  }
  componentDidMount() {
    this.getCarts();
  }
  onClickExpand(event) {
    event.preventDefault();
    this.setState({
      expanded: !this.state.expanded
    });
  }
  render() {
    if (!this.state.loaded) {
      return null;
    }
    return (
      <div>
        <div className="cart-block--summary">
          <a className="cart-block--link__expand" href={`${baseUrl}/cart`} onClick={this.onClickExpand}>
            <span className="cart-block--summary__icon">
              <img src={`/modules/contrib/commerce/icons/ffffff/drupal-cart.png`} />
            </span>
            <span className="cart-block--summary__count">{this.state.count} items</span>
          </a>
        </div>
        <div
          className={`cart-block--contents ${this.state.expanded ? ['cart-block--contents__expanded is-outside-horizontal'] : []}`}
          style={{
            display: this.state.expanded ? 'inherit' : 'none',
          }}
        >
          <div className="cart-block--contents__inner">
            <div className="cart-block--contents__items">
              {this.state.carts.map(cart => (
                <Cart cart={cart}/>
              ))}
            </div>
            <div className="cart-block--contents__links">
              <a href={`${baseUrl}/cart`}>View your cart</a>
            </div>
          </div>
        </div>
      </div>
    )
  }
}
export default CartBlock;

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc