bnbservice-checkout-embed
Version:
Embeddable app to facilitate the request of a service instance
120 lines (90 loc) • 4.61 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require("babel-runtime/helpers/inherits");
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _reactNumberFormat = require("react-number-format");
var _reactNumberFormat2 = _interopRequireDefault(_reactNumberFormat);
var _handleInputs = require("./handleInputs");
var _reactRedux = require("react-redux");
var _currencySymbolMap = require("currency-symbol-map");
var _currencySymbolMap2 = _interopRequireDefault(_currencySymbolMap);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var WidgetPricingInput = function (_React$Component) {
(0, _inherits3.default)(WidgetPricingInput, _React$Component);
function WidgetPricingInput(props) {
(0, _classCallCheck3.default)(this, WidgetPricingInput);
var _this = (0, _possibleConstructorReturn3.default)(this, (WidgetPricingInput.__proto__ || Object.getPrototypeOf(WidgetPricingInput)).call(this, props));
_this.state = {};
_this.handleChange = _this.handleChange.bind(_this);
return _this;
}
(0, _createClass3.default)(WidgetPricingInput, [{
key: "handleChange",
value: function handleChange(isCents) {
var self = this;
return function (_ref, e) {
var value = _ref.value;
var name = e.target.name;
var parsedValue = isCents ? (0, _handleInputs.toCents)(value) : value;
self.setState((0, _defineProperty3.default)({}, name, parsedValue), function () {
self.props.input.onChange(self.state[name]);
});
};
}
}, {
key: "render",
value: function render() {
//renders a number input or a currency input based on the operation type
var self = this;
var props = this.props;
var options = props.options,
operation = props.operation,
_props$input = props.input,
name = _props$input.name,
value = _props$input.value,
onChange = _props$input.onChange;
var prefix = options.currency ? (0, _currencySymbolMap2.default)(options.currency.value) : '';
if (operation == 'add' || operation == 'subtract') {
var price = value / 100;
return _react2.default.createElement(_reactNumberFormat2.default, { className: "form-control addon-checkbox-widget-price-input", name: name,
prefix: prefix, decimalSeparator: ".", thousandSeparator: ",", decimalScale: "2",
allowNegative: false,
fixedDecimalScale: false,
onValueChange: this.handleChange(true), value: price
});
} else if (operation == 'divide' || operation == 'multiply') {
return _react2.default.createElement(_reactNumberFormat2.default, { className: "form-control addon-checkbox-widget-price-input", name: name,
decimalSeparator: ".", decimalScale: 0, suffix: "%", allowNegative: false,
onValueChange: this.handleChange(false), value: value
})
// <input {...props.input} type="number" className="form-control addon-checkbox-widget-price-input"/>
;
} else {
return _react2.default.createElement(
"span",
{ className: "addon-widget-price-tip" },
"Select a pricing type"
);
}
}
}]);
return WidgetPricingInput;
}(_react2.default.Component);
var mapStateToProps = function mapStateToProps(state) {
return {
options: state.options
};
};
exports.default = (0, _reactRedux.connect)(mapStateToProps)(WidgetPricingInput);