Skip to content

Commit 3248efc

Browse files
committed
add rendermode field to pickup location item api
1 parent 4aeed9f commit 3248efc

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

.changeset/petite-foxes-pay.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@shopify/ui-extensions': minor
3+
---
4+
5+
add renderMode field to pickup location item

packages/ui-extensions/src/surfaces/checkout/api/pickup/pickup-location-item.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,19 @@ export interface PickupLocationItemApi {
1111
* Whether the pickup location is currently selected.
1212
*/
1313
isTargetSelected: SubscribableSignalLike<boolean>;
14+
15+
/**
16+
* The render mode of the pickup location option.
17+
*/
18+
renderMode: PickupLocationOptionItemRenderMode;
19+
}
20+
21+
/**
22+
* The render mode of a pickup location option item.
23+
*/
24+
export interface PickupLocationOptionItemRenderMode {
25+
/**
26+
* Whether the pickup location option is rendered in an overlay.
27+
*/
28+
overlay: boolean;
1429
}

packages/ui-extensions/src/surfaces/checkout/preact/pickup-location-option-target.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {useMemo} from 'preact/hooks';
22

33
import type {PickupLocationOption} from '../api/standard/standard';
4+
import {PickupLocationOptionItemRenderMode} from '../api/pickup/pickup-location-item';
45

56
import {ExtensionHasNoTargetError} from './errors';
67
import {useApi} from './api';
@@ -14,6 +15,7 @@ import {useSubscription} from './subscription';
1415
export function usePickupLocationOptionTarget(): {
1516
pickupLocationOptionTarget: PickupLocationOption;
1617
isTargetSelected: boolean;
18+
renderMode: PickupLocationOptionItemRenderMode;
1719
} {
1820
const api =
1921
useApi<'purchase.checkout.pickup-location-option-item.render-after'>();
@@ -26,13 +28,15 @@ export function usePickupLocationOptionTarget(): {
2628

2729
const pickupLocationOptionTarget = useSubscription(api.target);
2830
const isTargetSelected = useSubscription(api.isTargetSelected);
31+
const renderMode = api.renderMode;
2932

3033
const pickupLocationOption = useMemo(() => {
3134
return {
3235
pickupLocationOptionTarget,
3336
isTargetSelected,
37+
renderMode,
3438
};
35-
}, [pickupLocationOptionTarget, isTargetSelected]);
39+
}, [pickupLocationOptionTarget, isTargetSelected, renderMode]);
3640

3741
return pickupLocationOption;
3842
}

packages/ui-extensions/src/surfaces/checkout/preact/tests/pickup-location-option-target.test.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ describe('usePickupLocationOptionTarget', () => {
5959
setupGlobalShopifyMock<typeof target>({
6060
extension: createMockExtension(target),
6161
target: createMockSubscribableSignalLike(pickupLocationOption),
62+
renderMode: {overlay: false},
6263
});
6364

6465
expect(() => {
@@ -77,13 +78,15 @@ describe('usePickupLocationOptionTarget', () => {
7778
extension: createMockExtension(target),
7879
target: createMockSubscribableSignalLike(pickupLocationOption),
7980
isTargetSelected: createMockSubscribableSignalLike(true),
81+
renderMode: {overlay: false},
8082
});
8183

8284
const {value} = mount.hook(() => usePickupLocationOptionTarget());
8385

8486
expect(value).toStrictEqual({
8587
pickupLocationOptionTarget: pickupLocationOption,
8688
isTargetSelected: true,
89+
renderMode: {overlay: false},
8790
});
8891
});
8992
});

0 commit comments

Comments
 (0)