diff --git a/ui/component/settingsStripeCard/index.js b/ui/component/settingsStripeCard/index.js index f9ff20ff5b..18aed3fed3 100644 --- a/ui/component/settingsStripeCard/index.js +++ b/ui/component/settingsStripeCard/index.js @@ -2,15 +2,13 @@ import { connect } from 'react-redux'; import { doSetPreferredCurrency } from 'redux/actions/settings'; import { selectPreferredCurrency } from 'redux/selectors/settings'; import { selectCustomerStatusFetching, selectCustomerStatus, selectCardDetails } from 'redux/selectors/stripe'; -import { selectUserEmail } from 'redux/selectors/user'; import { doOpenModal } from 'redux/actions/app'; -import { doGetCustomerStatus, doRemoveCardForPaymentMethodId, doCustomerSetup } from 'redux/actions/stripe'; +import { doGetCustomerStatus, doRemoveCardForPaymentMethodId } from 'redux/actions/stripe'; import { doToast } from 'redux/actions/notifications'; import SettingsStripeCard from './view'; const select = (state) => ({ - email: selectUserEmail(state), preferredCurrency: selectPreferredCurrency(state), customerStatusFetching: selectCustomerStatusFetching(state), customerStatus: selectCustomerStatus(state), @@ -23,7 +21,6 @@ const perform = { doToast, doSetPreferredCurrency, doRemoveCardForPaymentMethodId, - doCustomerSetup, }; export default connect(select, perform)(SettingsStripeCard); diff --git a/ui/component/settingsStripeCard/view.jsx b/ui/component/settingsStripeCard/view.jsx index 1beaa714d4..6cb2f87222 100644 --- a/ui/component/settingsStripeCard/view.jsx +++ b/ui/component/settingsStripeCard/view.jsx @@ -1,9 +1,9 @@ // @flow import React from 'react'; -import { Elements, useStripe, useElements, CardElement } from '@stripe/react-stripe-js'; +import { Elements } from '@stripe/react-stripe-js'; import { loadStripe } from '@stripe/stripe-js'; -import { Form, FormField, Submit } from 'component/common/form'; +import { FormField } from 'component/common/form'; import { STRIPE_PUBLIC_KEY } from 'config'; import * as ICONS from 'constants/icons'; @@ -19,13 +19,11 @@ import Spinner from 'component/spinner'; import './style.scss'; const stripePromise = loadStripe(STRIPE_PUBLIC_KEY); -const CARD_NAME_REGEX = /[0-9!@#$%^&*()_+=[\]{};:"\\|,<>?~]/; type WrapperProps = { isModal: boolean, setIsBusy: (isBusy: boolean) => void, // -- redux -- - email: ?string, preferredCurrency: string, customerStatusFetching: ?boolean, cardDetails: StripeCardDetails, @@ -34,24 +32,18 @@ type WrapperProps = { doToast: (params: { message: string }) => void, doOpenModal: (modalId: string, {}) => void, doRemoveCardForPaymentMethodId: (paymentMethodId: string) => Promise, - doCustomerSetup: () => Promise, }; type Props = WrapperProps & { promisePending: ?boolean, - stripeError: ?string, reloadForm: () => void, }; const SettingsStripeCard = (props: Props) => { const { isModal, - promisePending, - stripeError, - reloadForm, setIsBusy, // -- redux -- - email, preferredCurrency, customerStatusFetching, cardDetails, @@ -60,54 +52,8 @@ const SettingsStripeCard = (props: Props) => { doToast, doOpenModal, doRemoveCardForPaymentMethodId, - doCustomerSetup, } = props; - const stripe = useStripe(); - const elements = useElements(); - - const [cardNameValue, setCardNameValue] = React.useState(''); - const [isLoading, setLoading] = React.useState(false); - const [formError, setFormError] = React.useState(); - - function confirmCardSetup(clientSecret) { - const cardElement = elements.getElement(CardElement); - - stripe - .confirmCardSetup(clientSecret, { - payment_method: { card: cardElement, billing_details: { email, name: cardNameValue } }, - }) - .then((result) => { - if (result.error) { - setLoading(false); - setFormError(result.error.message); - } else { - // The PaymentMethod was successfully set up - // hide and show the proper divs - stripe.retrieveSetupIntent(clientSecret).then(doGetCustomerStatus); - } - }); - } - - function handleSubmit(event) { - if (!stripe || !elements) return; - - event.preventDefault(); - setLoading(true); - - doCustomerSetup() - .then((customerSetupResponse: StripeCustomerSetupResponse) => { - confirmCardSetup(customerSetupResponse.client_secret); - }) - .catch(() => setLoading(false)); - } - - React.useEffect(() => { - if (stripeError) { - setFormError(stripeError); - } - }, [stripeError]); - React.useEffect(() => { if (cardDetails === undefined) { doGetCustomerStatus(); @@ -116,9 +62,7 @@ const SettingsStripeCard = (props: Props) => { React.useEffect(() => { if (cardDetails) { - setLoading(false); if (setIsBusy) setIsBusy(false); - setCardNameValue(''); } }, [cardDetails, setIsBusy]); @@ -126,23 +70,6 @@ const SettingsStripeCard = (props: Props) => { const returnToValue = new URLSearchParams(location.search).get('returnTo'); let shouldShowBackToMembershipButton = returnToValue === 'premium'; - function clearErrorMessage() { - setFormError(undefined); - } - - function onChangeCardName(event) { - const { value } = event.target; - - if (CARD_NAME_REGEX.test(value)) { - setFormError(__('Special characters and numbers are not allowed')); - } else if (value.length > 48) { - setFormError(__('Name must be less than 48 characters long')); - } else { - clearErrorMessage(); - setCardNameValue(value); - } - } - if (cardDetails) { return (
@@ -228,55 +155,7 @@ const SettingsStripeCard = (props: Props) => { } if (cardDetails === null) { - return ( -
- - - setFormError(event.error?.message)} - /> - } - /> - - {stripeError ? ( -