Advertisement
jpb972

React Stripe Elements

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