diff --git a/modules/@shopify/checkout-sheet-kit/src/ShopifyCheckoutEventProvider.tsx b/modules/@shopify/checkout-sheet-kit/src/ShopifyCheckoutEventProvider.tsx index b46e5953..9fdb6d15 100644 --- a/modules/@shopify/checkout-sheet-kit/src/ShopifyCheckoutEventProvider.tsx +++ b/modules/@shopify/checkout-sheet-kit/src/ShopifyCheckoutEventProvider.tsx @@ -19,11 +19,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO import React, {createContext, useContext, useRef, useCallback} from 'react'; import {UIManager, findNodeHandle} from 'react-native'; +import type {CheckoutEventResponsePayload} from './events.d'; interface CheckoutEventContextType { registerWebView: (webViewRef: React.RefObject) => void; unregisterWebView: () => void; - respondToEvent: (eventId: string, response: any) => Promise; + respondToEvent: ( + eventId: string, + response: CheckoutEventResponsePayload, + ) => Promise; } const CheckoutEventContext = createContext( @@ -52,7 +56,10 @@ export const ShopifyCheckoutEventProvider = ({ }, []); const respondToEvent = useCallback( - async (eventId: string, response: any): Promise => { + async ( + eventId: string, + response: CheckoutEventResponsePayload, + ): Promise => { if (!webViewRef.current?.current) { return false; } @@ -112,7 +119,7 @@ export function useShopifyEvent(eventId: string) { return { id: eventId, respondWith: useCallback( - async (response: any) => { + async (response: CheckoutEventResponsePayload) => { if (!eventContext) { return false; } diff --git a/modules/@shopify/checkout-sheet-kit/src/events.d.ts b/modules/@shopify/checkout-sheet-kit/src/events.d.ts index 744514b7..ea4128e5 100644 --- a/modules/@shopify/checkout-sheet-kit/src/events.d.ts +++ b/modules/@shopify/checkout-sheet-kit/src/events.d.ts @@ -596,3 +596,12 @@ export interface CheckoutSubmitStartResponsePayload { */ errors?: CheckoutResponseError[]; } + +/** + * Union type of all checkout event response payloads. + * Use with ShopifyCheckoutEventProvider.respondToEvent() or useShopifyEvent().respondWith() + */ +export type CheckoutEventResponsePayload = + | CheckoutAddressChangeStartResponsePayload + | CheckoutPaymentMethodChangeStartResponsePayload + | CheckoutSubmitStartResponsePayload; diff --git a/modules/@shopify/checkout-sheet-kit/src/index.ts b/modules/@shopify/checkout-sheet-kit/src/index.ts index 1ef56e5d..f8184491 100644 --- a/modules/@shopify/checkout-sheet-kit/src/index.ts +++ b/modules/@shopify/checkout-sheet-kit/src/index.ts @@ -501,6 +501,7 @@ export type { CheckoutAddressChangeStartEvent, CheckoutAddressChangeStartResponsePayload, CheckoutCompleteEvent, + CheckoutEventResponsePayload, CheckoutPaymentMethodChangeStartEvent, CheckoutPaymentMethodChangeStartResponsePayload, CheckoutResponseError,