diff --git a/tests/types/src/valid.ts b/tests/types/src/valid.ts index 39bb2be1..d6a67b3a 100644 --- a/tests/types/src/valid.ts +++ b/tests/types/src/valid.ts @@ -507,6 +507,14 @@ const shippingAddressElement = elements.create('shippingAddress', { }, }, disableAutocomplete: true, + fields: { + phone: 'always', + }, + validation: { + phone: { + required: 'never', + }, + }, }); shippingAddressElement @@ -525,6 +533,14 @@ shippingAddressElement }) => {} ); +shippingAddressElement.update({ + validation: { + phone: { + required: 'always', + }, + }, +}); + const retrievedShippingAddressElement: StripeShippingAddressElement | null = elements.getElement( 'shippingAddress' ); diff --git a/types/stripe-js/elements/shipping-address.d.ts b/types/stripe-js/elements/shipping-address.d.ts index db0801fa..656b2be2 100644 --- a/types/stripe-js/elements/shipping-address.d.ts +++ b/types/stripe-js/elements/shipping-address.d.ts @@ -122,6 +122,14 @@ export type StripeShippingAddressElement = StripeElementBase & { eventType: 'loaderstart', handler?: (event: {elementType: 'shippingAddress'}) => any ): StripeShippingAddressElement; + + /** + * Updates the options the `ShippingAddressElement` was initialized with. + * Updates are merged into the existing configuration. + */ + update( + options: Partial + ): StripeShippingAddressElement; }; export interface StripeShippingAddressElementOptions { @@ -148,12 +156,29 @@ export interface StripeShippingAddressElementOptions { postal_code?: string | null; country: string; }; + phone?: string | null; }; /** * Whether or not ShippingAddressElement provides autocomplete suggestions */ disableAutocomplete?: boolean; + + /** + * Control which additional fields to display in the shippingAddress Element. + */ + fields?: { + phone?: 'always' | 'never' | 'auto'; + }; + + /** + * Specify validation rules for the above additional fields. + */ + validation?: { + phone?: { + required: 'always' | 'never' | 'auto'; + }; + }; } export interface StripeShippingAddressElementChangeEvent @@ -191,5 +216,6 @@ export interface StripeShippingAddressElementChangeEvent postal_code: string; country: string; }; + phone?: string; }; }