Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import {
  3.   CardElement,
  4.   CardNumberElement,
  5.   CardExpiryElement,
  6.   CardCVCElement,
  7.   PostalCodeElement,
  8.   injectStripe
  9. } from 'react-stripe-elements';
  10. import { Label } from 'reactstrap';
  11.  
  12. class _PaymentForm extends Component {
  13.   handleSubmit = evt => {
  14.     evt.preventDefault();
  15.     console.log('handleSubmit');
  16.   };
  17.  
  18.   handleClick = () => {
  19.     console.log('handleClick');
  20.   };
  21.  
  22.   render() {
  23.     return (
  24.       <form onSubmit={this.handleSubmit}>
  25.         <Label>
  26.           Card Number
  27.           <CardNumberElement onClick={this.handleClick} style={{base: {fontSize: '18px'}}}/>
  28.         </Label>
  29.         <br />
  30.         <Label>
  31.           Card Expiry
  32.           <CardExpiryElement onClick={this.handleClick} style={{base: {fontSize: '18px'}}}/>
  33.         </Label>
  34.         <br />
  35.         <Label>
  36.           Card CVC
  37.           <CardCVCElement onClick={this.handleClick} style={{base: {fontSize: '18px'}}}/>
  38.         </Label>
  39.         <br />
  40.         <Label>
  41.           Zip
  42.           <PostalCodeElement onClick={this.handleClick} style={{base: {fontSize: '18px'}}}/>
  43.         </Label>
  44.       </form>
  45.     );
  46.   }
  47.  
  48. }
  49.  
  50. const PaymentForm = injectStripe(_PaymentForm);
  51.  
  52. export default PaymentForm;
  53. ================================================================================================================
  54. import React, { Component } from 'react';
  55. import { Modal, ModalHeader, ModalBody, Button } from 'reactstrap';
  56. import { Elements } from 'react-stripe-elements';
  57.  
  58. import PaymentForm from './PaymentForm';
  59.  
  60. class PaymentModal extends Component {
  61.   constructor(props) {
  62.     super(props);
  63.     this.state = { showPayment: false };
  64.   }
  65.  
  66.   handleSubmit = () => {
  67.     this.setState({ showPayment: false });
  68.   };
  69.  
  70.   handleClick = () => {
  71.     this.setState({ showPayment: true });
  72.   };
  73.  
  74.   render() {
  75.     return this.state.showPayment ? (
  76.       <Modal isOpen={this.state.showPayment}>
  77.         <ModalHeader>Modal Header</ModalHeader>
  78.         <ModalBody>
  79.           <Elements>
  80.             <PaymentForm />
  81.           </Elements>
  82.           <Button onClick={this.handleSubmit}>Submit</Button>
  83.         </ModalBody>
  84.       </Modal>
  85.     ) : (
  86.       <Button onClick={this.handleClick} className="mt-1">
  87.         Add Payment
  88.       </Button>
  89.     );
  90.   }
  91. }
  92.  
  93. export default PaymentModal;
  94. ================================================================================================================
  95. const App = () => (
  96.   <StripeProvider apiKey={STRIPE_API_KEY}>
  97.     <div>
  98.       <Home />
  99.     </div>
  100.   </StripeProvider>
  101. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement