Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / dist / components / presets / Order / OrderThemed.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

const tslib_1 = require("tslib");

const react_1 = tslib_1.__importDefault(require("react"));

const mobx_react_1 = require("xmobx/mobx-react");

const words_1 = require("../../../bootstrapper/words");

const CancelReturnForm_1 = tslib_1.__importDefault(require("./CancelReturnForm"));

const renderProps_1 = require("./renderProps");

const Order_1 = require("./");

const ActionButtonGroup_1 = require("./ActionButtonGroup");

const ProductItemList_1 = require("./ProductItemList");

const ProductItemList_2 = require("../../abstractions/Order/ProductItemList");

const renderProductItemButtons = (props, state) => {
  const view = react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(ActionButtonGroup_1.StyledPrintButton, {
    text: words_1.words.itemButtonPrimary,
    onClick: state.toggleActive
  }), react_1.default.createElement(ActionButtonGroup_1.StyledOrderAgainButton, {
    text: words_1.words.itemButtonSecondary
  }), react_1.default.createElement(ActionButtonGroup_1.StyledReturnButton, {
    text: words_1.words.itemButtonTertiary
  }));
  return view;
};

const renderProductItemAddress = item => {
  return react_1.default.createElement(ProductItemList_2.StyledPhysicalAddress, {
    address: item.shippingAddress
  });
};

const renderProductItemForm = (props, state) => {
  return react_1.default.createElement(CancelReturnForm_1.default, {
    state: state
  });
};

const renderProductItem = item => {
  const attributes = Object.assign({}, item, {
    renderProductItemAddress,
    renderProductItemButtons,
    renderProductItemForm
  });
  return ProductItemList_1.defaultRenderProductItem(attributes);
};

const renderOrderButtons = (props, state) => {
  const view = react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(ActionButtonGroup_1.PrintButton, {
    text: words_1.words.orderButtonPrimary,
    onClick: state.toggleActive
  }), react_1.default.createElement(ActionButtonGroup_1.OrderAgainButton, {
    text: words_1.words.orderButtonSecondary
  }), react_1.default.createElement(ActionButtonGroup_1.ReturnButton, {
    text: words_1.words.orderButtonTertiary
  }));
  return view;
};

const renderOrderForm = (props, state) => {
  return react_1.default.createElement(CancelReturnForm_1.default, {
    state: state
  });
};

const createRenderProps = data => {
  const renderStatus = (props, state) => renderProps_1.defaultRenderStatus(Object.assign({}, props, {
    orderStatusData: data.orderStatusData
  }), state);

  const renderPaymentSummary = (props, state) => {
    const hasSingleItem = data.list.length === 1 ? true : false;
    const attributes = Object.assign({}, props, {
      //
      shippingAddressInfo: data.shippingAddressInfo,
      shippingMethodInfo: data.shippingMethodInfo,
      paymentMethodInfo: data.paymentMethodInfo,
      orderSummaryInfo: data.orderSummaryInfo,
      singleProduct: hasSingleItem,
      //
      renderButtons: renderOrderButtons,
      renderForm: renderOrderForm
    });
    return renderProps_1.defaultRenderPaymentSummary(attributes);
  };

  const renderProductItemList = (props, state) => {
    const attributes = Object.assign({}, props, {
      list: data.list,
      //
      renderProductItem
    });
    return renderProps_1.defaultRenderProductItemList(attributes, state);
  };

  return {
    renderStatus,
    renderPaymentSummary,
    renderProductItemList
  };
};

let OrderThemed = class OrderThemed extends react_1.default.Component {
  render() {
    const _a = this.props,
          {
      list,
      orderStatusData,
      shippingAddressInfo,
      shippingMethodInfo,
      paymentMethodInfo,
      orderSummaryInfo
    } = _a,
          remainingProps = tslib_1.__rest(_a, ["list", "orderStatusData", "shippingAddressInfo", "shippingMethodInfo", "paymentMethodInfo", "orderSummaryInfo"]);

    const {
      renderStatus,
      renderPaymentSummary,
      renderProductItemList
    } = createRenderProps(this.props);
    const attributes = Object.assign({
      renderProductItemList,
      renderStatus,
      renderPaymentSummary,
      renderOrderButtons,
      renderOrderForm
    }, remainingProps);
    return react_1.default.createElement(Order_1.Order, Object.assign({}, attributes));
  }

};
OrderThemed = tslib_1.__decorate([mobx_react_1.observer], OrderThemed);
exports.OrderThemed = OrderThemed;
exports.default = OrderThemed; //# sourceMappingURL=OrderThemed.js.map