Skip to content

Commit 8530232

Browse files
authored
Move accelerated config to class (#348)
* Move accelerated config to class * Make context method async
1 parent 97b03f2 commit 8530232

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

modules/@shopify/checkout-sheet-kit/src/context.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ interface Context {
3939
acceleratedCheckoutsAvailable: boolean;
4040
addEventListener: AddEventListener;
4141
getConfig: () => Promise<Configuration | undefined>;
42-
setConfig: (config: Configuration) => void;
42+
setConfig: (config: Configuration) => Promise<void>;
4343
removeEventListeners: RemoveEventListeners;
4444
preload: (checkoutUrl: string) => void;
4545
present: (checkoutUrl: string) => void;
@@ -76,14 +76,10 @@ export function ShopifyCheckoutSheetProvider({
7676
return;
7777
}
7878

79-
if (configuration.acceleratedCheckouts) {
80-
const ready = await instance.current?.configureAcceleratedCheckouts(
81-
configuration.acceleratedCheckouts,
82-
);
83-
setAcceleratedCheckoutsAvailable(ready);
84-
}
85-
86-
instance.current?.setConfig(configuration);
79+
await instance.current?.setConfig(configuration);
80+
setAcceleratedCheckoutsAvailable(
81+
instance.current.acceleratedCheckoutsReady,
82+
);
8783
}
8884

8985
configureCheckoutKit();
@@ -120,8 +116,8 @@ export function ShopifyCheckoutSheetProvider({
120116
instance.current?.dismiss();
121117
}, []);
122118

123-
const setConfig = useCallback((config: Configuration) => {
124-
instance.current?.setConfig(config);
119+
const setConfig = useCallback(async (config: Configuration) => {
120+
await instance.current?.setConfig(config);
125121
}, []);
126122

127123
const getConfig = useCallback(async () => {

modules/@shopify/checkout-sheet-kit/src/index.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ class ShopifyCheckoutSheet implements ShopifyCheckoutSheetKit {
8585
private features: Features;
8686
private geolocationCallback: Maybe<EventSubscription>;
8787

88+
private _acceleratedCheckoutsReady = false;
89+
90+
get acceleratedCheckoutsReady(): boolean {
91+
return this._acceleratedCheckoutsReady;
92+
}
93+
8894
/**
8995
* Initializes a new ShopifyCheckoutSheet instance
9096
* @param configuration Optional configuration settings for the checkout
@@ -152,7 +158,13 @@ class ShopifyCheckoutSheet implements ShopifyCheckoutSheetKit {
152158
* Updates the checkout configuration
153159
* @param configuration New configuration settings to apply
154160
*/
155-
public setConfig(configuration: Configuration): void {
161+
public async setConfig(configuration: Configuration): Promise<void> {
162+
if (configuration.acceleratedCheckouts) {
163+
this._acceleratedCheckoutsReady =
164+
await this.configureAcceleratedCheckouts(
165+
configuration.acceleratedCheckouts,
166+
);
167+
}
156168
RNShopifyCheckoutSheetKit.setConfig(configuration);
157169
}
158170

0 commit comments

Comments
 (0)