diff --git a/.changeset/tender-boxes-own.md b/.changeset/tender-boxes-own.md new file mode 100644 index 0000000000..05642f4dc8 --- /dev/null +++ b/.changeset/tender-boxes-own.md @@ -0,0 +1,5 @@ +--- +'@shopify/ui-extensions': minor +--- + +Update Product Configuration extension points to use block extension api and data diff --git a/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-details-configuration.ts b/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-details-configuration.ts index 9327b1da36..b4f6eb6a54 100644 --- a/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-details-configuration.ts +++ b/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-details-configuration.ts @@ -1,6 +1,8 @@ -import type {StandardApi} from '../standard/standard'; +import type {BlockExtensionApi} from '../block/block'; import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets'; +import type {Data} from '../shared'; +/* @deprecated */ interface Product { id: string; title: string; @@ -21,6 +23,7 @@ interface Product { productComponents: ProductComponent[]; } +/* @deprecated */ export interface ProductComponent { id: string; title: string; @@ -37,9 +40,12 @@ export interface ProductComponent { export interface ProductDetailsConfigurationApi< ExtensionTarget extends AnyExtensionTarget, -> extends StandardApi { - data: { - /* The product currently being viewed in the admin. */ +> extends BlockExtensionApi { + data: Data & { + /* + @deprecated + The product currently being viewed in the admin. + */ product: Product; app: { launchUrl: string; diff --git a/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-variant-details-configuration.ts b/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-variant-details-configuration.ts index 88afc27f02..ecec2bba32 100644 --- a/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-variant-details-configuration.ts +++ b/packages/ui-extensions/src/surfaces/admin/api/product-configuration/product-variant-details-configuration.ts @@ -1,6 +1,8 @@ -import type {StandardApi} from '../standard/standard'; +import type {BlockExtensionApi} from '../block/block'; import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets'; +import type {Data} from '../shared'; +/* @deprecated */ interface ProductVariant { id: string; sku: string; @@ -19,6 +21,7 @@ interface ProductVariant { productVariantComponents: ProductVariantComponent[]; } +/* @deprecated */ export interface ProductVariantComponent { id: string; displayName: string; @@ -38,9 +41,12 @@ export interface ProductVariantComponent { export interface ProductVariantDetailsConfigurationApi< ExtensionTarget extends AnyExtensionTarget, -> extends StandardApi { - data: { - /* The product variant currently being viewed in the admin. */ +> extends BlockExtensionApi { + data: Data & { + /* + @deprecated + The product variant currently being viewed in the admin. + */ variant: ProductVariant; app: { launchUrl: string; diff --git a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts index 594144185c..cf09f33139 100644 --- a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts +++ b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts @@ -28,22 +28,6 @@ type CustomerSegmentTemplateComponent = AnyComponentBuilder< > >; -type ProductConfigurationComponents = AnyComponentBuilder< - Pick< - Components, - | 'Box' - | 'InlineStack' - | 'BlockStack' - | 'Divider' - | 'HeadingGroup' - | 'Heading' - | 'Text' - | 'Link' - | 'Image' - | 'Icon' - > ->; - type OrderRoutingComponents = AnyComponentBuilder< Pick >; @@ -510,7 +494,7 @@ export interface ExtensionTargets { */ 'admin.product-details.configuration.render': RenderExtension< ProductDetailsConfigurationApi<'admin.product-details.configuration.render'>, - ProductConfigurationComponents + AllComponents >; /** @@ -520,7 +504,7 @@ export interface ExtensionTargets { */ 'admin.product-variant-details.configuration.render': RenderExtension< ProductVariantDetailsConfigurationApi<'admin.product-variant-details.configuration.render'>, - ProductConfigurationComponents + AllComponents >; /**