From db1c33d1fea0befe761fc631fc22b1436a24bd09 Mon Sep 17 00:00:00 2001 From: Krzysztof Wolski Date: Thu, 1 Oct 2020 18:56:38 +0200 Subject: [PATCH 1/5] Add default variant indicator for variant nav --- src/fragments/products.ts | 3 + src/fragments/types/ProductVariant.ts | 6 ++ .../ProductVariantNavigation.tsx | 60 ++++++++++++------- .../ProductVariantPage/ProductVariantPage.tsx | 16 +++-- src/products/types/ProductVariantDetails.ts | 6 ++ src/products/types/SimpleProductUpdate.ts | 24 ++++++++ src/products/types/VariantCreate.ts | 6 ++ src/products/types/VariantImageAssign.ts | 6 ++ src/products/types/VariantImageUnassign.ts | 6 ++ src/products/types/VariantUpdate.ts | 12 ++++ src/products/views/ProductVariant.tsx | 1 + 11 files changed, 119 insertions(+), 27 deletions(-) diff --git a/src/fragments/products.ts b/src/fragments/products.ts index b0d729069..33e0fbc33 100644 --- a/src/fragments/products.ts +++ b/src/fragments/products.ts @@ -253,6 +253,9 @@ export const fragmentVariant = gql` url } } + defaultVariant { + id + } } sku stocks { diff --git a/src/fragments/types/ProductVariant.ts b/src/fragments/types/ProductVariant.ts index 928e068c8..cc447088e 100644 --- a/src/fragments/types/ProductVariant.ts +++ b/src/fragments/types/ProductVariant.ts @@ -99,6 +99,11 @@ export interface ProductVariant_product_variants { images: (ProductVariant_product_variants_images | null)[] | null; } +export interface ProductVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface ProductVariant_product { __typename: "Product"; id: string; @@ -107,6 +112,7 @@ export interface ProductVariant_product { name: string; thumbnail: ProductVariant_product_thumbnail | null; variants: (ProductVariant_product_variants | null)[] | null; + defaultVariant: ProductVariant_product_defaultVariant | null; } export interface ProductVariant_stocks_warehouse { diff --git a/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx b/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx index 6d9214d22..8bae5945a 100644 --- a/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx +++ b/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx @@ -1,6 +1,7 @@ import Button from "@material-ui/core/Button"; import Card from "@material-ui/core/Card"; import { makeStyles } from "@material-ui/core/styles"; +import { fade } from "@material-ui/core/styles/colorManipulator"; import TableCell from "@material-ui/core/TableCell"; import TableRow from "@material-ui/core/TableRow"; import CardTitle from "@saleor/components/CardTitle"; @@ -28,6 +29,10 @@ const useStyles = makeStyles( colName: { paddingLeft: 0 }, + defaultVariant: { + color: fade(theme.palette.text.secondary, 0.6), + display: "block" + }, firstVariant: { width: 88 }, @@ -57,6 +62,7 @@ const useStyles = makeStyles( interface ProductVariantNavigationProps { current?: string; + defaultVariantId?: string; fallbackThumbnail: string; variants: | ProductVariantDetails_productVariant[] @@ -69,6 +75,7 @@ interface ProductVariantNavigationProps { const ProductVariantNavigation: React.FC = props => { const { current, + defaultVariantId, fallbackThumbnail, variants, onAdd, @@ -89,28 +96,37 @@ const ProductVariantNavigation: React.FC = props /> - {renderCollection(variants, (variant, variantIndex) => ( - onRowClick(variant.id) : undefined} - > - variant.images[0].url, - fallbackThumbnail - )} - /> - - {variant ? variant.name || variant.sku : } - - - ))} + {renderCollection(variants, (variant, variantIndex) => { + const isDefault = variant && variant.id === defaultVariantId; + const isActive = variant && variant.id === current; + return ( + onRowClick(variant.id) : undefined} + > + + + {variant ? variant.name || variant.sku : } + {isDefault && ( + + {intl.formatMessage({ + defaultMessage: "default", + description: "default variant label" + })} + + )} + + + ); + })} {onAdd ? ( diff --git a/src/products/components/ProductVariantPage/ProductVariantPage.tsx b/src/products/components/ProductVariantPage/ProductVariantPage.tsx index 3e19efa9e..0030e346d 100644 --- a/src/products/components/ProductVariantPage/ProductVariantPage.tsx +++ b/src/products/components/ProductVariantPage/ProductVariantPage.tsx @@ -15,6 +15,7 @@ import useFormset, { FormsetChange, FormsetData } from "@saleor/hooks/useFormset"; +import { VariantUpdate_productVariantUpdate_errors } from "@saleor/products/types/VariantUpdate"; import { getAttributeInputFromVariant, getStockInputFromVariant @@ -54,13 +55,16 @@ export interface ProductVariantPageSubmitData } interface ProductVariantPageProps { + defaultVariantId?: string; defaultWeightUnit: string; - variant?: ProductVariant; - errors: ProductErrorWithAttributesFragment[]; - saveButtonBarState: ConfirmButtonTransitionState; + errors: + | ProductErrorWithAttributesFragment[] + | VariantUpdate_productVariantUpdate_errors[]; + header: string; loading?: boolean; placeholderImage?: string; - header: string; + saveButtonBarState: ConfirmButtonTransitionState; + variant?: ProductVariant; warehouses: WarehouseFragment[]; onVariantReorder: ReorderAction; onAdd(); @@ -74,10 +78,11 @@ interface ProductVariantPageProps { } const ProductVariantPage: React.FC = ({ + defaultVariantId, defaultWeightUnit, errors, - loading, header, + loading, placeholderImage, saveButtonBarState, variant, @@ -192,6 +197,7 @@ const ProductVariantPage: React.FC = ({
variant.product.thumbnail.url )} diff --git a/src/products/types/ProductVariantDetails.ts b/src/products/types/ProductVariantDetails.ts index 7227a7405..6917ef57d 100644 --- a/src/products/types/ProductVariantDetails.ts +++ b/src/products/types/ProductVariantDetails.ts @@ -99,6 +99,11 @@ export interface ProductVariantDetails_productVariant_product_variants { images: (ProductVariantDetails_productVariant_product_variants_images | null)[] | null; } +export interface ProductVariantDetails_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface ProductVariantDetails_productVariant_product { __typename: "Product"; id: string; @@ -107,6 +112,7 @@ export interface ProductVariantDetails_productVariant_product { name: string; thumbnail: ProductVariantDetails_productVariant_product_thumbnail | null; variants: (ProductVariantDetails_productVariant_product_variants | null)[] | null; + defaultVariant: ProductVariantDetails_productVariant_product_defaultVariant | null; } export interface ProductVariantDetails_productVariant_stocks_warehouse { diff --git a/src/products/types/SimpleProductUpdate.ts b/src/products/types/SimpleProductUpdate.ts index b0c1a04d3..276322553 100644 --- a/src/products/types/SimpleProductUpdate.ts +++ b/src/products/types/SimpleProductUpdate.ts @@ -346,6 +346,11 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_product images: (SimpleProductUpdate_productVariantUpdate_productVariant_product_variants_images | null)[] | null; } +export interface SimpleProductUpdate_productVariantUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantUpdate_productVariant_product { __typename: "Product"; id: string; @@ -354,6 +359,7 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_product name: string; thumbnail: SimpleProductUpdate_productVariantUpdate_productVariant_product_thumbnail | null; variants: (SimpleProductUpdate_productVariantUpdate_productVariant_product_variants | null)[] | null; + defaultVariant: SimpleProductUpdate_productVariantUpdate_productVariant_product_defaultVariant | null; } export interface SimpleProductUpdate_productVariantUpdate_productVariant_stocks_warehouse { @@ -497,6 +503,11 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_p images: (SimpleProductUpdate_productVariantStocksCreate_productVariant_product_variants_images | null)[] | null; } +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_product { __typename: "Product"; id: string; @@ -505,6 +516,7 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_p name: string; thumbnail: SimpleProductUpdate_productVariantStocksCreate_productVariant_product_thumbnail | null; variants: (SimpleProductUpdate_productVariantStocksCreate_productVariant_product_variants | null)[] | null; + defaultVariant: SimpleProductUpdate_productVariantStocksCreate_productVariant_product_defaultVariant | null; } export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_stocks_warehouse { @@ -647,6 +659,11 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_p images: (SimpleProductUpdate_productVariantStocksDelete_productVariant_product_variants_images | null)[] | null; } +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_product { __typename: "Product"; id: string; @@ -655,6 +672,7 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_p name: string; thumbnail: SimpleProductUpdate_productVariantStocksDelete_productVariant_product_thumbnail | null; variants: (SimpleProductUpdate_productVariantStocksDelete_productVariant_product_variants | null)[] | null; + defaultVariant: SimpleProductUpdate_productVariantStocksDelete_productVariant_product_defaultVariant | null; } export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_stocks_warehouse { @@ -798,6 +816,11 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_p images: (SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_variants_images | null)[] | null; } +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_product { __typename: "Product"; id: string; @@ -806,6 +829,7 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_p name: string; thumbnail: SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_thumbnail | null; variants: (SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_variants | null)[] | null; + defaultVariant: SimpleProductUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant | null; } export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_stocks_warehouse { diff --git a/src/products/types/VariantCreate.ts b/src/products/types/VariantCreate.ts index be28216f6..c364133a0 100644 --- a/src/products/types/VariantCreate.ts +++ b/src/products/types/VariantCreate.ts @@ -106,6 +106,11 @@ export interface VariantCreate_productVariantCreate_productVariant_product_varia images: (VariantCreate_productVariantCreate_productVariant_product_variants_images | null)[] | null; } +export interface VariantCreate_productVariantCreate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantCreate_productVariantCreate_productVariant_product { __typename: "Product"; id: string; @@ -114,6 +119,7 @@ export interface VariantCreate_productVariantCreate_productVariant_product { name: string; thumbnail: VariantCreate_productVariantCreate_productVariant_product_thumbnail | null; variants: (VariantCreate_productVariantCreate_productVariant_product_variants | null)[] | null; + defaultVariant: VariantCreate_productVariantCreate_productVariant_product_defaultVariant | null; } export interface VariantCreate_productVariantCreate_productVariant_stocks_warehouse { diff --git a/src/products/types/VariantImageAssign.ts b/src/products/types/VariantImageAssign.ts index 5dcf48722..4407c7bd5 100644 --- a/src/products/types/VariantImageAssign.ts +++ b/src/products/types/VariantImageAssign.ts @@ -105,6 +105,11 @@ export interface VariantImageAssign_variantImageAssign_productVariant_product_va images: (VariantImageAssign_variantImageAssign_productVariant_product_variants_images | null)[] | null; } +export interface VariantImageAssign_variantImageAssign_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantImageAssign_variantImageAssign_productVariant_product { __typename: "Product"; id: string; @@ -113,6 +118,7 @@ export interface VariantImageAssign_variantImageAssign_productVariant_product { name: string; thumbnail: VariantImageAssign_variantImageAssign_productVariant_product_thumbnail | null; variants: (VariantImageAssign_variantImageAssign_productVariant_product_variants | null)[] | null; + defaultVariant: VariantImageAssign_variantImageAssign_productVariant_product_defaultVariant | null; } export interface VariantImageAssign_variantImageAssign_productVariant_stocks_warehouse { diff --git a/src/products/types/VariantImageUnassign.ts b/src/products/types/VariantImageUnassign.ts index 347b3f992..2836421b1 100644 --- a/src/products/types/VariantImageUnassign.ts +++ b/src/products/types/VariantImageUnassign.ts @@ -105,6 +105,11 @@ export interface VariantImageUnassign_variantImageUnassign_productVariant_produc images: (VariantImageUnassign_variantImageUnassign_productVariant_product_variants_images | null)[] | null; } +export interface VariantImageUnassign_variantImageUnassign_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantImageUnassign_variantImageUnassign_productVariant_product { __typename: "Product"; id: string; @@ -113,6 +118,7 @@ export interface VariantImageUnassign_variantImageUnassign_productVariant_produc name: string; thumbnail: VariantImageUnassign_variantImageUnassign_productVariant_product_thumbnail | null; variants: (VariantImageUnassign_variantImageUnassign_productVariant_product_variants | null)[] | null; + defaultVariant: VariantImageUnassign_variantImageUnassign_productVariant_product_defaultVariant | null; } export interface VariantImageUnassign_variantImageUnassign_productVariant_stocks_warehouse { diff --git a/src/products/types/VariantUpdate.ts b/src/products/types/VariantUpdate.ts index 7bb411da3..f785727d7 100644 --- a/src/products/types/VariantUpdate.ts +++ b/src/products/types/VariantUpdate.ts @@ -106,6 +106,11 @@ export interface VariantUpdate_productVariantUpdate_productVariant_product_varia images: (VariantUpdate_productVariantUpdate_productVariant_product_variants_images | null)[] | null; } +export interface VariantUpdate_productVariantUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantUpdate_productVariantUpdate_productVariant_product { __typename: "Product"; id: string; @@ -114,6 +119,7 @@ export interface VariantUpdate_productVariantUpdate_productVariant_product { name: string; thumbnail: VariantUpdate_productVariantUpdate_productVariant_product_thumbnail | null; variants: (VariantUpdate_productVariantUpdate_productVariant_product_variants | null)[] | null; + defaultVariant: VariantUpdate_productVariantUpdate_productVariant_product_defaultVariant | null; } export interface VariantUpdate_productVariantUpdate_productVariant_stocks_warehouse { @@ -257,6 +263,11 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_product images: (VariantUpdate_productVariantStocksUpdate_productVariant_product_variants_images | null)[] | null; } +export interface VariantUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant { + __typename: "ProductVariant"; + id: string; +} + export interface VariantUpdate_productVariantStocksUpdate_productVariant_product { __typename: "Product"; id: string; @@ -265,6 +276,7 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_product name: string; thumbnail: VariantUpdate_productVariantStocksUpdate_productVariant_product_thumbnail | null; variants: (VariantUpdate_productVariantStocksUpdate_productVariant_product_variants | null)[] | null; + defaultVariant: VariantUpdate_productVariantStocksUpdate_productVariant_product_defaultVariant | null; } export interface VariantUpdate_productVariantStocksUpdate_productVariant_stocks_warehouse { diff --git a/src/products/views/ProductVariant.tsx b/src/products/views/ProductVariant.tsx index 2de88694b..50b8ccd52 100644 --- a/src/products/views/ProductVariant.tsx +++ b/src/products/views/ProductVariant.tsx @@ -201,6 +201,7 @@ export const ProductVariant: React.FC = ({ Date: Thu, 1 Oct 2020 19:02:21 +0200 Subject: [PATCH 2/5] Locale and changelog --- CHANGELOG.md | 1 + locale/defaultMessages.json | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c9489724..d00be6b09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ All notable, unreleased changes to this project will be documented in this file. - Change plural form of "informations" to "information" strings across the app #722 by @mmarkusik - Fix misaligned rich text draft controls - #725 by @orzechdev - Allow taxes to be configured per product - #728 by @dominik-zeglen +- Add default variant indicator for variant nav - #741 by @krzysztofwolski - Fix style of product type attributes empty table - #744 by @orzechdev - Fix order draft back button redirect - #753 by @orzechdev diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index 435914cf8..15cef10f3 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -4516,6 +4516,10 @@ "context": "button", "string": "Choose photos" }, + "src_dot_products_dot_components_dot_ProductVariantNavigation_dot_1120495519": { + "context": "default variant label", + "string": "default" + }, "src_dot_products_dot_components_dot_ProductVariantNavigation_dot_2153006789": { "context": "section header", "string": "Variants" From 10c44d3ac53a298f78837c86a7dbf4bf87c96dd1 Mon Sep 17 00:00:00 2001 From: Krzysztof Wolski Date: Thu, 1 Oct 2020 19:04:53 +0200 Subject: [PATCH 3/5] Update translation contextCo-authored-by: Patryk Zawadzki <81205+patrys@users.noreply.github.com> --- locale/defaultMessages.json | 14 +++++++------- .../ProductVariantNavigation.tsx | 6 +++--- .../components/ProductVariants/ProductVariants.tsx | 4 ++-- src/storybook/__snapshots__/Stories.test.ts.snap | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index 15cef10f3..13fb9f884 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -4516,9 +4516,9 @@ "context": "button", "string": "Choose photos" }, - "src_dot_products_dot_components_dot_ProductVariantNavigation_dot_1120495519": { - "context": "default variant label", - "string": "default" + "src_dot_products_dot_components_dot_ProductVariantNavigation_dot_1222345317": { + "context": "default product variant indicator", + "string": "Default" }, "src_dot_products_dot_components_dot_ProductVariantNavigation_dot_2153006789": { "context": "section header", @@ -4554,14 +4554,14 @@ "context": "product variant inventory", "string": "Unavailable" }, - "src_dot_products_dot_components_dot_ProductVariants_dot_1120495519": { - "context": "default variant label", - "string": "default" - }, "src_dot_products_dot_components_dot_ProductVariants_dot_1134347598": { "context": "product variant price", "string": "Price" }, + "src_dot_products_dot_components_dot_ProductVariants_dot_1222345317": { + "context": "default product variant indicator", + "string": "Default" + }, "src_dot_products_dot_components_dot_ProductVariants_dot_1252282784": { "context": "product variant inventory", "string": "{stockQuantity,plural,one{{stockQuantity} available} other{{stockQuantity} available}}" diff --git a/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx b/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx index 8bae5945a..bcb573dad 100644 --- a/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx +++ b/src/products/components/ProductVariantNavigation/ProductVariantNavigation.tsx @@ -17,7 +17,7 @@ import classNames from "classnames"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; -import { maybe, renderCollection } from "../../../misc"; +import { renderCollection } from "../../../misc"; import { ProductVariantCreateData_product_variants } from "../../types/ProductVariantCreateData"; import { ProductVariantDetails_productVariant } from "../../types/ProductVariantDetails"; @@ -118,8 +118,8 @@ const ProductVariantNavigation: React.FC = props {isDefault && ( {intl.formatMessage({ - defaultMessage: "default", - description: "default variant label" + defaultMessage: "Default", + description: "default product variant indicator" })} )} diff --git a/src/products/components/ProductVariants/ProductVariants.tsx b/src/products/components/ProductVariants/ProductVariants.tsx index 7e12fd64b..a89c3bb2b 100644 --- a/src/products/components/ProductVariants/ProductVariants.tsx +++ b/src/products/components/ProductVariants/ProductVariants.tsx @@ -355,8 +355,8 @@ export const ProductVariants: React.FC = props => { {isDefault && ( {intl.formatMessage({ - defaultMessage: "default", - description: "default variant label" + defaultMessage: "Default", + description: "default product variant indicator" })} )} diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index e376650a9..795acbb16 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -146607,7 +146607,7 @@ Ctrl + K" - default + Default - default + Default - default + Default - default + Default Date: Tue, 13 Oct 2020 18:16:06 +0200 Subject: [PATCH 4/5] Fix defaulrt variant type duplication --- src/fragments/types/ProductVariant.ts | 1 - src/products/types/ProductVariantDetails.ts | 1 - src/products/types/SimpleProductUpdate.ts | 4 ---- src/products/types/VariantCreate.ts | 1 - src/products/types/VariantImageAssign.ts | 1 - src/products/types/VariantImageUnassign.ts | 1 - src/products/types/VariantUpdate.ts | 2 -- 7 files changed, 11 deletions(-) diff --git a/src/fragments/types/ProductVariant.ts b/src/fragments/types/ProductVariant.ts index cc447088e..9cc5da325 100644 --- a/src/fragments/types/ProductVariant.ts +++ b/src/fragments/types/ProductVariant.ts @@ -112,7 +112,6 @@ export interface ProductVariant_product { name: string; thumbnail: ProductVariant_product_thumbnail | null; variants: (ProductVariant_product_variants | null)[] | null; - defaultVariant: ProductVariant_product_defaultVariant | null; } export interface ProductVariant_stocks_warehouse { diff --git a/src/products/types/ProductVariantDetails.ts b/src/products/types/ProductVariantDetails.ts index 6917ef57d..4eaf125a4 100644 --- a/src/products/types/ProductVariantDetails.ts +++ b/src/products/types/ProductVariantDetails.ts @@ -107,7 +107,6 @@ export interface ProductVariantDetails_productVariant_product_defaultVariant { 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 276322553..13ba1db76 100644 --- a/src/products/types/SimpleProductUpdate.ts +++ b/src/products/types/SimpleProductUpdate.ts @@ -354,7 +354,6 @@ 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; @@ -511,7 +510,6 @@ 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; @@ -667,7 +665,6 @@ 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; @@ -824,7 +821,6 @@ 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 c364133a0..ad340028e 100644 --- a/src/products/types/VariantCreate.ts +++ b/src/products/types/VariantCreate.ts @@ -114,7 +114,6 @@ export interface VariantCreate_productVariantCreate_productVariant_product_defau 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 4407c7bd5..871c1bf99 100644 --- a/src/products/types/VariantImageAssign.ts +++ b/src/products/types/VariantImageAssign.ts @@ -113,7 +113,6 @@ export interface VariantImageAssign_variantImageAssign_productVariant_product_de 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 2836421b1..719b9e8a6 100644 --- a/src/products/types/VariantImageUnassign.ts +++ b/src/products/types/VariantImageUnassign.ts @@ -113,7 +113,6 @@ 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 f785727d7..88d3548e4 100644 --- a/src/products/types/VariantUpdate.ts +++ b/src/products/types/VariantUpdate.ts @@ -114,7 +114,6 @@ export interface VariantUpdate_productVariantUpdate_productVariant_product_defau 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; @@ -271,7 +270,6 @@ 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; From bf450de82296b01b235688b0dde1e0f0d9efaca4 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Tue, 13 Oct 2020 18:36:45 +0200 Subject: [PATCH 5/5] Handle case when there is no default variant selected --- .../components/ProductVariantPage/ProductVariantPage.tsx | 2 +- src/products/components/ProductVariants/ProductVariants.tsx | 2 +- src/products/views/ProductVariant.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/products/components/ProductVariantPage/ProductVariantPage.tsx b/src/products/components/ProductVariantPage/ProductVariantPage.tsx index 0030e346d..777fcd907 100644 --- a/src/products/components/ProductVariantPage/ProductVariantPage.tsx +++ b/src/products/components/ProductVariantPage/ProductVariantPage.tsx @@ -176,7 +176,7 @@ const ProductVariantPage: React.FC = ({ {maybe(() => variant.product.name)} - {variant?.product?.defaultVariant.id !== variant?.id && ( + {variant?.product?.defaultVariant?.id !== variant?.id && ( diff --git a/src/products/components/ProductVariants/ProductVariants.tsx b/src/products/components/ProductVariants/ProductVariants.tsx index a89c3bb2b..cb533e8a1 100644 --- a/src/products/components/ProductVariants/ProductVariants.tsx +++ b/src/products/components/ProductVariants/ProductVariants.tsx @@ -399,7 +399,7 @@ export const ProductVariants: React.FC = props => { data-test="actions" onClick={e => e.stopPropagation()} > - {variant?.id !== product?.defaultVariant.id && ( + {variant?.id !== product?.defaultVariant?.id && ( onSetDefaultVariant(variant)} /> diff --git a/src/products/views/ProductVariant.tsx b/src/products/views/ProductVariant.tsx index 50b8ccd52..7b99e3ba3 100644 --- a/src/products/views/ProductVariant.tsx +++ b/src/products/views/ProductVariant.tsx @@ -201,7 +201,7 @@ export const ProductVariant: React.FC = ({