From 7970102cb3cd9f8bda615c16508620c011d0ec8b Mon Sep 17 00:00:00 2001 From: Gabriel L Martinez Date: Fri, 10 Apr 2020 20:46:32 -0400 Subject: [PATCH 1/4] Filter column ids before send it to GridAttributes --- src/products/views/ProductList/ProductList.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/products/views/ProductList/ProductList.tsx b/src/products/views/ProductList/ProductList.tsx index e30d0cb3d..e0f83cee9 100644 --- a/src/products/views/ProductList/ProductList.tsx +++ b/src/products/views/ProductList/ProductList.tsx @@ -33,6 +33,10 @@ import createFilterHandlers from "@saleor/utils/handlers/filterHandlers"; import useCategorySearch from "@saleor/searches/useCategorySearch"; import useCollectionSearch from "@saleor/searches/useCollectionSearch"; import useProductTypeSearch from "@saleor/searches/useProductTypeSearch"; +import { + getAttributeIdFromColumnValue, + isAttributeColumnValue +} from "@saleor/products/components/ProductListPage/utils"; import ProductListPage from "../../components/ProductListPage"; import { TypedProductBulkDeleteMutation, @@ -215,9 +219,18 @@ export const ProductList: React.FC = ({ params }) => { } ); + const columnIdsFilter = columns => { + columns = columns.filter(column => isAttributeColumnValue(column)); + columns.forEach( + (attribute, index, arr) => + (arr[index] = getAttributeIdFromColumnValue(attribute)) + ); + return columns; + }; + return ( {attributes => ( From 5095cfef691b2f6e0d58c82c9fd35f15d267e6b3 Mon Sep 17 00:00:00 2001 From: Gabriel L Martinez Date: Fri, 10 Apr 2020 20:52:28 -0400 Subject: [PATCH 2/4] Update CHANGELOG.md to include the fix --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfcb79337..0755e21aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ All notable, unreleased changes to this project will be documented in this file. - Add "Ready to capture" to the "Status" order filter - #430 by @dominik-zeglen - Reset state after closing - #456 by @dominik-zeglen - Password validation errors are not shown - #471 by @gabmartinez +- Filter column ids before send it to GridAttributes operation - #476 by @gabmartinez ## 2.0.0 From c59ea6ada68fee6d447e226f2920b1036125b114 Mon Sep 17 00:00:00 2001 From: Gabriel L Martinez Date: Wed, 15 Apr 2020 04:46:17 -0400 Subject: [PATCH 3/4] Refactor filterColumnIds and move it to utils --- src/products/components/ProductListPage/utils.ts | 8 ++++++++ src/products/views/ProductList/ProductList.tsx | 16 ++-------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/products/components/ProductListPage/utils.ts b/src/products/components/ProductListPage/utils.ts index 2f0735182..2c5fc9e2b 100644 --- a/src/products/components/ProductListPage/utils.ts +++ b/src/products/components/ProductListPage/utils.ts @@ -1,3 +1,5 @@ +import { ProductListColumns } from "@saleor/config"; + const prefix = "attribute"; export function getAttributeColumnValue(id: string) { @@ -11,3 +13,9 @@ export function isAttributeColumnValue(value: string) { export function getAttributeIdFromColumnValue(value: string) { return value.substr(prefix.length + 1); } + +export function filterColumnIds(columns: ProductListColumns[]) { + return columns + .filter(isAttributeColumnValue) + .map(getAttributeIdFromColumnValue); +} diff --git a/src/products/views/ProductList/ProductList.tsx b/src/products/views/ProductList/ProductList.tsx index e0f83cee9..53c9cd79b 100644 --- a/src/products/views/ProductList/ProductList.tsx +++ b/src/products/views/ProductList/ProductList.tsx @@ -33,10 +33,7 @@ import createFilterHandlers from "@saleor/utils/handlers/filterHandlers"; import useCategorySearch from "@saleor/searches/useCategorySearch"; import useCollectionSearch from "@saleor/searches/useCollectionSearch"; import useProductTypeSearch from "@saleor/searches/useProductTypeSearch"; -import { - getAttributeIdFromColumnValue, - isAttributeColumnValue -} from "@saleor/products/components/ProductListPage/utils"; +import { filterColumnIds } from "@saleor/products/components/ProductListPage/utils"; import ProductListPage from "../../components/ProductListPage"; import { TypedProductBulkDeleteMutation, @@ -219,18 +216,9 @@ export const ProductList: React.FC = ({ params }) => { } ); - const columnIdsFilter = columns => { - columns = columns.filter(column => isAttributeColumnValue(column)); - columns.forEach( - (attribute, index, arr) => - (arr[index] = getAttributeIdFromColumnValue(attribute)) - ); - return columns; - }; - return ( {attributes => ( From bf3a0b4f59eb0769b4fd6b20dff207208c5c8a14 Mon Sep 17 00:00:00 2001 From: Gabriel L Martinez Date: Wed, 15 Apr 2020 05:47:49 -0400 Subject: [PATCH 4/4] Move filter method to ProductList view --- src/products/components/ProductListPage/utils.ts | 8 -------- src/products/views/ProductList/ProductList.tsx | 11 ++++++++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/products/components/ProductListPage/utils.ts b/src/products/components/ProductListPage/utils.ts index 2c5fc9e2b..2f0735182 100644 --- a/src/products/components/ProductListPage/utils.ts +++ b/src/products/components/ProductListPage/utils.ts @@ -1,5 +1,3 @@ -import { ProductListColumns } from "@saleor/config"; - const prefix = "attribute"; export function getAttributeColumnValue(id: string) { @@ -13,9 +11,3 @@ export function isAttributeColumnValue(value: string) { export function getAttributeIdFromColumnValue(value: string) { return value.substr(prefix.length + 1); } - -export function filterColumnIds(columns: ProductListColumns[]) { - return columns - .filter(isAttributeColumnValue) - .map(getAttributeIdFromColumnValue); -} diff --git a/src/products/views/ProductList/ProductList.tsx b/src/products/views/ProductList/ProductList.tsx index 53c9cd79b..7bf75e1d7 100644 --- a/src/products/views/ProductList/ProductList.tsx +++ b/src/products/views/ProductList/ProductList.tsx @@ -33,7 +33,10 @@ import createFilterHandlers from "@saleor/utils/handlers/filterHandlers"; import useCategorySearch from "@saleor/searches/useCategorySearch"; import useCollectionSearch from "@saleor/searches/useCollectionSearch"; import useProductTypeSearch from "@saleor/searches/useProductTypeSearch"; -import { filterColumnIds } from "@saleor/products/components/ProductListPage/utils"; +import { + getAttributeIdFromColumnValue, + isAttributeColumnValue +} from "@saleor/products/components/ProductListPage/utils"; import ProductListPage from "../../components/ProductListPage"; import { TypedProductBulkDeleteMutation, @@ -216,6 +219,12 @@ export const ProductList: React.FC = ({ params }) => { } ); + function filterColumnIds(columns: ProductListColumns[]) { + return columns + .filter(isAttributeColumnValue) + .map(getAttributeIdFromColumnValue); + } + return (