Skip to content

Commit fb31ba2

Browse files
committed
Admin: expose picker and resource API for all rendering targets
1 parent 78318cc commit fb31ba2

File tree

11 files changed

+46
-50
lines changed

11 files changed

+46
-50
lines changed

.changeset/wicked-singers-float.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@shopify/ui-extensions': patch
3+
---
4+
5+
Admin: Expose picker and resource picker APIs in the standard API for rendering extensions

packages/ui-extensions/src/surfaces/admin/api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export type {I18n, I18nTranslate} from '../../api';
22
export type {StandardApi, Intents} from './api/standard/standard';
3+
export type {StandardRenderingExtensionApi} from './api/standard/standard-rendering';
34
export type {Navigation} from './api/block/block';
45
export type {
56
CustomerSegmentTemplateApi,
Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import type {StandardApi} from '../standard/standard';
1+
import type {StandardRenderingExtensionApi} from '../standard/standard-rendering';
22
import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets';
33
import type {Data} from '../shared';
4-
import type {ResourcePickerApi} from '../resource-picker/resource-picker';
5-
import type {PickerApi} from '../picker/picker';
64

75
export interface ActionExtensionApi<ExtensionTarget extends AnyExtensionTarget>
8-
extends StandardApi<ExtensionTarget> {
6+
extends StandardRenderingExtensionApi<ExtensionTarget> {
97
/**
108
* Closes the extension. Calling this method is equivalent to the merchant clicking the "x" in the corner of the overlay.
119
*/
@@ -15,14 +13,4 @@ export interface ActionExtensionApi<ExtensionTarget extends AnyExtensionTarget>
1513
* Information about the currently viewed or selected items.
1614
*/
1715
data: Data;
18-
19-
/**
20-
* Renders the [Resource Picker](resource-picker), allowing users to select a resource for the extension to use as part of its flow.
21-
*/
22-
resourcePicker: ResourcePickerApi;
23-
24-
/**
25-
* Renders a custom [Picker](picker) dialog allowing users to select values from a list.
26-
*/
27-
picker: PickerApi;
2816
}
Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import type {StandardApi} from '../standard/standard';
1+
import type {StandardRenderingExtensionApi} from '../standard/standard-rendering';
22
import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets';
33
import type {Data} from '../shared';
4-
import type {ResourcePickerApi} from '../resource-picker/resource-picker';
5-
import type {PickerApi} from '../picker/picker';
64

75
export interface Navigation {
86
/**
@@ -14,7 +12,7 @@ export interface Navigation {
1412
}
1513

1614
export interface BlockExtensionApi<ExtensionTarget extends AnyExtensionTarget>
17-
extends StandardApi<ExtensionTarget> {
15+
extends StandardRenderingExtensionApi<ExtensionTarget> {
1816
/**
1917
* Information about the currently viewed or selected items.
2018
*/
@@ -25,14 +23,4 @@ export interface BlockExtensionApi<ExtensionTarget extends AnyExtensionTarget>
2523
* For example, you can navigate from an admin block on the product details page (`admin.product-details.block.render`) to an admin action on the product details page (`admin.product-details.action.render`).
2624
*/
2725
navigation: Navigation;
28-
29-
/**
30-
* Renders the [Resource Picker](resource-picker), allowing users to select a resource for the extension to use as part of its flow.
31-
*/
32-
resourcePicker: ResourcePickerApi;
33-
34-
/**
35-
* Renders a custom [Picker](picker) dialog allowing users to select values from a list.
36-
*/
37-
picker: PickerApi;
3826
}

packages/ui-extensions/src/surfaces/admin/api/checkout-rules/validation-settings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import type {StandardApi} from '../standard/standard';
1+
import type {StandardRenderingExtensionApi} from '../standard/standard-rendering';
22
import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets';
33

44
import {ApplyMetafieldChange} from './metafields';
55
import {ValidationData} from './launch-options';
66

77
export interface ValidationSettingsApi<
88
ExtensionTarget extends AnyExtensionTarget,
9-
> extends StandardApi<ExtensionTarget> {
9+
> extends StandardRenderingExtensionApi<ExtensionTarget> {
1010
/**
1111
* Applies a change to the validation settings.
1212
*/
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import type {StandardApi} from '../standard/standard';
1+
import type {StandardRenderingExtensionApi} from '../standard/standard-rendering';
22
import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets';
33

44
import {ApplyMetafieldsChange} from './metafields';
55
import {Data} from './data';
66

77
export interface OrderRoutingRuleApi<ExtensionTarget extends AnyExtensionTarget>
8-
extends StandardApi<ExtensionTarget> {
8+
extends StandardRenderingExtensionApi<ExtensionTarget> {
99
applyMetafieldsChange: ApplyMetafieldsChange;
1010
data: Data;
1111
}

packages/ui-extensions/src/surfaces/admin/api/picker/picker.doc.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ const data: ReferenceEntityTemplateSchema = {
1010
isVisualComponent: true,
1111
category: 'API',
1212
thumbnail: 'picker.png',
13-
requires:
14-
'an Admin [block](/docs/api/admin-extensions/unstable/extension-targets#block-locations), [action](/docs/api/admin-extensions/unstable/extension-targets#action-locations), or [print](/docs/api/admin-extensions/unstable/extension-targets#print-locations) extension.',
1513
defaultExample: {
1614
image: 'picker.png',
1715
codeblock: {
Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,12 @@
1-
import type {StandardApi} from '../standard/standard';
1+
import {StandardRenderingExtensionApi} from '../standard/standard-rendering';
22
import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets';
33
import type {Data} from '../shared';
4-
import type {ResourcePickerApi} from '../resource-picker/resource-picker';
5-
import type {PickerApi} from '../picker/picker';
64

75
export interface PrintActionExtensionApi<
86
ExtensionTarget extends AnyExtensionTarget,
9-
> extends StandardApi<ExtensionTarget> {
7+
> extends StandardRenderingExtensionApi<ExtensionTarget> {
108
/**
119
* Information about the currently viewed or selected items.
1210
*/
1311
data: Data;
14-
15-
/**
16-
* Renders the [Resource Picker](resource-picker), allowing users to select a resource for the extension to use as part of its flow.
17-
*/
18-
resourcePicker: ResourcePickerApi;
19-
20-
/**
21-
* Renders a custom [Picker](picker) dialog allowing users to select values from a list.
22-
*/
23-
picker: PickerApi;
2412
}

packages/ui-extensions/src/surfaces/admin/api/resource-picker/resource-picker.doc.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ const data: ReferenceEntityTemplateSchema = {
1111
isVisualComponent: true,
1212
category: 'API',
1313
thumbnail: 'resource-picker.png',
14-
requires:
15-
'an Admin [block](/docs/api/admin-extensions/unstable/extension-targets#block-locations), [action](/docs/api/admin-extensions/unstable/extension-targets#action-locations), or [print](/docs/api/admin-extensions/unstable/extension-targets#print-locations) extension.',
1614
defaultExample: {
1715
image: 'resource-picker.png',
1816
codeblock: {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import {PickerApi} from '../picker/picker';
2+
import {ResourcePickerApi} from '../resource-picker/resource-picker';
3+
import {StandardApi} from './standard';
4+
import {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets';
5+
6+
export interface StandardRenderingExtensionApi<
7+
ExtensionTarget extends AnyExtensionTarget,
8+
> extends StandardApi<ExtensionTarget> {
9+
/**
10+
* Renders the [Resource Picker](resource-picker), allowing users to select a resource for the extension to use as part of its flow.
11+
*/
12+
resourcePicker: ResourcePickerApi;
13+
14+
/**
15+
* Renders a custom [Picker](picker) dialog allowing users to select values from a list.
16+
*/
17+
picker: PickerApi;
18+
}

0 commit comments

Comments
 (0)