diff --git a/src/components/CardMenu/CardMenu.tsx b/src/components/CardMenu/CardMenu.tsx index a6e8d67a8..e7b8afa22 100644 --- a/src/components/CardMenu/CardMenu.tsx +++ b/src/components/CardMenu/CardMenu.tsx @@ -12,6 +12,7 @@ import React from "react"; const ITEM_HEIGHT = 48; export interface CardMenuItem { + disabled?: boolean; label: string; testId?: string; onSelect: () => void; @@ -118,6 +119,7 @@ const CardMenu: React.FC = props => { > {menuItems.map((menuItem, menuItemIndex) => ( handleMenuClick(menuItemIndex)} key={menuItem.label} data-test={menuItem.testId} diff --git a/src/components/SeoForm/SeoForm.tsx b/src/components/SeoForm/SeoForm.tsx index 3825a697a..474b48122 100644 --- a/src/components/SeoForm/SeoForm.tsx +++ b/src/components/SeoForm/SeoForm.tsx @@ -202,7 +202,7 @@ const SeoForm: React.FC = props => { } InputProps={{ inputProps: { - maxlength: maxSlugLength + maxLength: maxSlugLength } }} helperText={getSlugHelperMessage()} @@ -237,7 +237,7 @@ const SeoForm: React.FC = props => { } InputProps={{ inputProps: { - maxlength: maxTitleLength + maxLength: maxTitleLength } }} helperText={intl.formatMessage(seoFieldMessage)} @@ -273,7 +273,7 @@ const SeoForm: React.FC = props => { helperText={intl.formatMessage(seoFieldMessage)} InputProps={{ inputProps: { - maxlength: maxDescriptionLength + maxLength: maxDescriptionLength } }} value={description} diff --git a/src/fragments/products.ts b/src/fragments/products.ts index 71ecbccfd..b0d729069 100644 --- a/src/fragments/products.ts +++ b/src/fragments/products.ts @@ -234,6 +234,9 @@ export const fragmentVariant = gql` } product { id + defaultVariant { + id + } images { ...ProductImageFragment } diff --git a/src/fragments/types/ProductVariant.ts b/src/fragments/types/ProductVariant.ts index 0f7fcf4fc..928e068c8 100644 --- a/src/fragments/types/ProductVariant.ts +++ b/src/fragments/types/ProductVariant.ts @@ -67,6 +67,11 @@ export interface ProductVariant_price { currency: string; } +export interface ProductVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface ProductVariant_product_images { __typename: "ProductImage"; id: string; @@ -97,6 +102,7 @@ export interface ProductVariant_product_variants { export interface ProductVariant_product { __typename: "Product"; id: string; + defaultVariant: ProductVariant_product_defaultVariant | null; images: (ProductVariant_product_images | null)[] | null; name: string; thumbnail: ProductVariant_product_thumbnail | null; diff --git a/src/products/components/ProductVariantPage/ProductVariantPage.tsx b/src/products/components/ProductVariantPage/ProductVariantPage.tsx index a91167439..3e19efa9e 100644 --- a/src/products/components/ProductVariantPage/ProductVariantPage.tsx +++ b/src/products/components/ProductVariantPage/ProductVariantPage.tsx @@ -171,7 +171,11 @@ const ProductVariantPage: React.FC = ({ {maybe(() => variant.product.name)} - + {variant?.product?.defaultVariant.id !== variant?.id && ( + + )}
{({ change, data, hasChanged, submit, triggerChange }) => { diff --git a/src/products/components/ProductVariants/ProductVariants.tsx b/src/products/components/ProductVariants/ProductVariants.tsx index 0df83659c..2562c4e4e 100644 --- a/src/products/components/ProductVariants/ProductVariants.tsx +++ b/src/products/components/ProductVariants/ProductVariants.tsx @@ -402,9 +402,11 @@ export const ProductVariants: React.FC = props => { data-test="actions" onClick={e => e.stopPropagation()} > - onSetDefaultVariant(variant)} - /> + {variant?.id !== product?.defaultVariant.id && ( + onSetDefaultVariant(variant)} + /> + )} ); diff --git a/src/products/fixtures.ts b/src/products/fixtures.ts index fdd046a1e..928217fe1 100644 --- a/src/products/fixtures.ts +++ b/src/products/fixtures.ts @@ -1557,6 +1557,10 @@ export const variant = (placeholderImage: string): ProductVariant => ({ privateMetadata: [], product: { __typename: "Product" as "Product", + defaultVariant: { + __typename: "ProductVariant", + id: "var1" + }, id: "prod1", images: [ { diff --git a/src/products/types/ProductVariantDetails.ts b/src/products/types/ProductVariantDetails.ts index 425cbc21d..7227a7405 100644 --- a/src/products/types/ProductVariantDetails.ts +++ b/src/products/types/ProductVariantDetails.ts @@ -67,6 +67,11 @@ export interface ProductVariantDetails_productVariant_price { currency: string; } +export interface ProductVariantDetails_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface ProductVariantDetails_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -97,6 +102,7 @@ export interface ProductVariantDetails_productVariant_product_variants { export interface ProductVariantDetails_productVariant_product { __typename: "Product"; id: string; + defaultVariant: ProductVariantDetails_productVariant_product_defaultVariant | null; images: (ProductVariantDetails_productVariant_product_images | null)[] | null; name: string; thumbnail: ProductVariantDetails_productVariant_product_thumbnail | null; diff --git a/src/products/types/SimpleProductUpdate.ts b/src/products/types/SimpleProductUpdate.ts index ae15c1b09..b0c1a04d3 100644 --- a/src/products/types/SimpleProductUpdate.ts +++ b/src/products/types/SimpleProductUpdate.ts @@ -314,6 +314,11 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_price { currency: string; } +export interface SimpleProductUpdate_productVariantUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantUpdate_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -344,6 +349,7 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_product export interface SimpleProductUpdate_productVariantUpdate_productVariant_product { __typename: "Product"; id: string; + defaultVariant: SimpleProductUpdate_productVariantUpdate_productVariant_product_defaultVariant | null; images: (SimpleProductUpdate_productVariantUpdate_productVariant_product_images | null)[] | null; name: string; thumbnail: SimpleProductUpdate_productVariantUpdate_productVariant_product_thumbnail | null; @@ -459,6 +465,11 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_p currency: string; } +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -489,6 +500,7 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_p export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_product { __typename: "Product"; id: string; + defaultVariant: SimpleProductUpdate_productVariantStocksCreate_productVariant_product_defaultVariant | null; images: (SimpleProductUpdate_productVariantStocksCreate_productVariant_product_images | null)[] | null; name: string; thumbnail: SimpleProductUpdate_productVariantStocksCreate_productVariant_product_thumbnail | null; @@ -603,6 +615,11 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_p currency: string; } +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -633,6 +650,7 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_p export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_product { __typename: "Product"; id: string; + defaultVariant: SimpleProductUpdate_productVariantStocksDelete_productVariant_product_defaultVariant | null; images: (SimpleProductUpdate_productVariantStocksDelete_productVariant_product_images | null)[] | null; name: string; thumbnail: SimpleProductUpdate_productVariantStocksDelete_productVariant_product_thumbnail | null; @@ -748,6 +766,11 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_p currency: string; } +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -778,6 +801,7 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_p export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_product { __typename: "Product"; id: string; + defaultVariant: SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant | null; images: (SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_images | null)[] | null; name: string; thumbnail: SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_thumbnail | null; diff --git a/src/products/types/VariantCreate.ts b/src/products/types/VariantCreate.ts index 6d1585bc8..be28216f6 100644 --- a/src/products/types/VariantCreate.ts +++ b/src/products/types/VariantCreate.ts @@ -74,6 +74,11 @@ export interface VariantCreate_productVariantCreate_productVariant_price { currency: string; } +export interface VariantCreate_productVariantCreate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantCreate_productVariantCreate_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -104,6 +109,7 @@ export interface VariantCreate_productVariantCreate_productVariant_product_varia export interface VariantCreate_productVariantCreate_productVariant_product { __typename: "Product"; id: string; + defaultVariant: VariantCreate_productVariantCreate_productVariant_product_defaultVariant | null; images: (VariantCreate_productVariantCreate_productVariant_product_images | null)[] | null; name: string; thumbnail: VariantCreate_productVariantCreate_productVariant_product_thumbnail | null; diff --git a/src/products/types/VariantImageAssign.ts b/src/products/types/VariantImageAssign.ts index 1980f0df5..5dcf48722 100644 --- a/src/products/types/VariantImageAssign.ts +++ b/src/products/types/VariantImageAssign.ts @@ -73,6 +73,11 @@ export interface VariantImageAssign_variantImageAssign_productVariant_price { currency: string; } +export interface VariantImageAssign_variantImageAssign_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantImageAssign_variantImageAssign_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -103,6 +108,7 @@ export interface VariantImageAssign_variantImageAssign_productVariant_product_va export interface VariantImageAssign_variantImageAssign_productVariant_product { __typename: "Product"; id: string; + defaultVariant: VariantImageAssign_variantImageAssign_productVariant_product_defaultVariant | null; images: (VariantImageAssign_variantImageAssign_productVariant_product_images | null)[] | null; name: string; thumbnail: VariantImageAssign_variantImageAssign_productVariant_product_thumbnail | null; diff --git a/src/products/types/VariantImageUnassign.ts b/src/products/types/VariantImageUnassign.ts index 2b3b63ebb..347b3f992 100644 --- a/src/products/types/VariantImageUnassign.ts +++ b/src/products/types/VariantImageUnassign.ts @@ -73,6 +73,11 @@ export interface VariantImageUnassign_variantImageUnassign_productVariant_price currency: string; } +export interface VariantImageUnassign_variantImageUnassign_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantImageUnassign_variantImageUnassign_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -103,6 +108,7 @@ export interface VariantImageUnassign_variantImageUnassign_productVariant_produc export interface VariantImageUnassign_variantImageUnassign_productVariant_product { __typename: "Product"; id: string; + defaultVariant: VariantImageUnassign_variantImageUnassign_productVariant_product_defaultVariant | null; images: (VariantImageUnassign_variantImageUnassign_productVariant_product_images | null)[] | null; name: string; thumbnail: VariantImageUnassign_variantImageUnassign_productVariant_product_thumbnail | null; diff --git a/src/products/types/VariantUpdate.ts b/src/products/types/VariantUpdate.ts index b5a179ec8..7bb411da3 100644 --- a/src/products/types/VariantUpdate.ts +++ b/src/products/types/VariantUpdate.ts @@ -74,6 +74,11 @@ export interface VariantUpdate_productVariantUpdate_productVariant_price { currency: string; } +export interface VariantUpdate_productVariantUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantUpdate_productVariantUpdate_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -104,6 +109,7 @@ export interface VariantUpdate_productVariantUpdate_productVariant_product_varia export interface VariantUpdate_productVariantUpdate_productVariant_product { __typename: "Product"; id: string; + defaultVariant: VariantUpdate_productVariantUpdate_productVariant_product_defaultVariant | null; images: (VariantUpdate_productVariantUpdate_productVariant_product_images | null)[] | null; name: string; thumbnail: VariantUpdate_productVariantUpdate_productVariant_product_thumbnail | null; @@ -219,6 +225,11 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_price { currency: string; } +export interface VariantUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantUpdate_productVariantStocksUpdate_productVariant_product_images { __typename: "ProductImage"; id: string; @@ -249,6 +260,7 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_product export interface VariantUpdate_productVariantStocksUpdate_productVariant_product { __typename: "Product"; id: string; + defaultVariant: VariantUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant | null; images: (VariantUpdate_productVariantStocksUpdate_productVariant_product_images | null)[] | null; name: string; thumbnail: VariantUpdate_productVariantStocksUpdate_productVariant_product_thumbnail | null; diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index 177b3ebd1..b871e9905 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -146622,35 +146622,7 @@ Ctrl + K" -
- -
- + /> -
- -
- + /> -
- -
- + /> -
- -
- + />
-
- -
-
+ /> @@ -175002,35 +174862,7 @@ exports[`Storyshots Views / Products / Product variant details no warehouses 1`] >
-
- -
-
+ /> @@ -176251,35 +176083,7 @@ exports[`Storyshots Views / Products / Product variant details when loaded data >
-
- -
-
+ /> @@ -177702,35 +177506,7 @@ exports[`Storyshots Views / Products / Product variant details when loading data >
-
- -
-
+ />