occsn-checkout
Version:
Occasion checkout experience boilerplate component built using React-Redux and Mitragyna
51 lines (40 loc) • 1.42 kB
JSX
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import _ from 'underscore';
import Decimal from 'decimal.js-light';
import occsn from '../../../libs/Occasion';
import Currency from 'react-currency-formatter';
import { Button, Card, CardBody, CardTitle, CardText, Col, Row } from "reactstrap";
export default class Coupon extends PureComponent {
static propTypes = {
currency: PropTypes.string.isRequired,
subject: PropTypes.instanceOf(occsn.Coupon),
};
static contextTypes = {
removeRedeemable: PropTypes.func,
};
render() {
let { currency, subject } = this.props;
let { removeRedeemable } = this.context;
let discount;
if(!_.isNull(subject.discountFixed)) {
discount = <Currency currency={currency} quantity={ Decimal(subject.discountFixed).toNumber() }></Currency>;
} else {
discount = <span>{subject.discountPercentage}%</span>;
}
let onRemove = () => {
removeRedeemable(subject)
};
return <Card className="coupon-container">
<CardBody className="coupon">
<Button className="close" onClick={onRemove}>
<span aria-hidden="true">×</span>
</Button>
<CardTitle className="coupon-title">
{ subject.name } - { subject.code }
</CardTitle>
<CardText className="coupon-message">{ discount }</CardText>
</CardBody>
</Card>
}
}