diff --git a/types/react-stripe-elements/index.d.ts b/types/react-stripe-elements/index.d.ts index ea8052c283..a3d00cb930 100644 --- a/types/react-stripe-elements/index.d.ts +++ b/types/react-stripe-elements/index.d.ts @@ -15,102 +15,98 @@ import * as React from 'react'; export namespace ReactStripeElements { - type ElementChangeResponse = stripe.elements.ElementChangeResponse; - type ElementsOptions = stripe.elements.ElementsOptions; - type TokenOptions = stripe.TokenOptions; - type TokenResponse = stripe.TokenResponse; - type SourceResponse = stripe.SourceResponse; - type SourceOptions = stripe.SourceOptions; - type HTMLStripeElement = stripe.elements.Element; + type ElementChangeResponse = stripe.elements.ElementChangeResponse; + type ElementsOptions = stripe.elements.ElementsOptions; + // From https://stripe.com/docs/stripe-js/reference#element-types + type TokenType = 'card' | 'cardNumber' | 'cardExpiry' | 'cardCvc' | 'paymentRequestButton' | 'iban' | 'idealBank'; + type TokenOptions = stripe.TokenOptions & { type?: TokenType }; + type TokenResponse = stripe.TokenResponse; + type SourceResponse = stripe.SourceResponse; + type SourceOptions = stripe.SourceOptions; + type HTMLStripeElement = stripe.elements.Element; - /** - * There's a bug in @types/stripe which defines the property as - * `declined_code` (with a 'd') but it's in fact `decline_code` - */ - type PatchedTokenResponse = TokenResponse & { - error?: { decline_code?: string }; - }; + /** + * There's a bug in @types/stripe which defines the property as + * `declined_code` (with a 'd') but it's in fact `decline_code` + */ + type PatchedTokenResponse = TokenResponse & { + error?: { decline_code?: string }; + }; - interface StripeProviderOptions { - stripeAccount?: string; - } - type StripeProviderProps = { apiKey: string; stripe?: never; } & StripeProviderOptions | { apiKey?: never; stripe: stripe.Stripe | null; } & StripeProviderOptions; + interface StripeProviderOptions { + stripeAccount?: string; + } + type StripeProviderProps = + | { apiKey: string; stripe?: never } & StripeProviderOptions + | { apiKey?: never; stripe: stripe.Stripe | null } & StripeProviderOptions; - interface StripeProps { - createSource(sourceData?: SourceOptions): Promise; - createToken(options?: TokenOptions): Promise; - paymentRequest: stripe.Stripe['paymentRequest']; - createPaymentMethod( - paymentMethodType: stripe.paymentMethod.paymentMethodType, - data?: stripe.CreatePaymentMethodOptions, - ): Promise; - handleCardPayment( - clientSecret: string, - options?: stripe.HandleCardPaymentOptions - ): Promise; - handleCardSetup( - clientSecret: string, - data?: stripe.HandleCardSetupOptions - ): Promise; - } + interface StripeProps { + createSource(sourceData?: SourceOptions): Promise; + createToken(options?: TokenOptions): Promise; + paymentRequest: stripe.Stripe['paymentRequest']; + createPaymentMethod( + paymentMethodType: stripe.paymentMethod.paymentMethodType, + data?: stripe.CreatePaymentMethodOptions, + ): Promise; + handleCardPayment( + clientSecret: string, + options?: stripe.HandleCardPaymentOptions, + ): Promise; + handleCardSetup( + clientSecret: string, + data?: stripe.HandleCardSetupOptions, + ): Promise; + } - interface InjectOptions { - withRef?: boolean; - } + interface InjectOptions { + withRef?: boolean; + } - interface InjectedStripeProps { - stripe?: StripeProps; - } + interface InjectedStripeProps { + stripe?: StripeProps; + } - interface ElementProps extends ElementsOptions { - id?: string; + interface ElementProps extends ElementsOptions { + id?: string; - className?: string; + className?: string; - elementRef?(ref: any): void; + elementRef?(ref: any): void; - onChange?(event: ElementChangeResponse): void; + onChange?(event: ElementChangeResponse): void; - onBlur?(event: ElementChangeResponse): void; + onBlur?(event: ElementChangeResponse): void; - onFocus?(event: ElementChangeResponse): void; + onFocus?(event: ElementChangeResponse): void; - onReady?(el: HTMLStripeElement): void; - } + onReady?(el: HTMLStripeElement): void; + } } -export class StripeProvider extends React.Component { -} +export class StripeProvider extends React.Component {} -export class Elements extends React.Component { -} +export class Elements extends React.Component {} export function injectStripe

( WrappedComponent: React.ComponentType

, - componentOptions?: ReactStripeElements.InjectOptions): React.ComponentType

; + componentOptions?: ReactStripeElements.InjectOptions, +): React.ComponentType

; -export class CardElement extends React.Component { -} +export class CardElement extends React.Component {} -export class CardNumberElement extends React.Component { -} +export class CardNumberElement extends React.Component {} -export class CardExpiryElement extends React.Component { -} +export class CardExpiryElement extends React.Component {} export class CardCvcElement extends React.Component {} // Deprecated but aliased until react-stripe-elements v5 export class CardCVCElement extends CardCvcElement {} -export class PostalCodeElement extends React.Component { -} +export class PostalCodeElement extends React.Component {} -export class PaymentRequestButtonElement extends React.Component { -} +export class PaymentRequestButtonElement extends React.Component {} -export class IbanElement extends React.Component { -} +export class IbanElement extends React.Component {} -export class IdealBankElement extends React.Component { -} +export class IdealBankElement extends React.Component {}