From fff2a8caeaead86a935c91c9913f548ab7217cf1 Mon Sep 17 00:00:00 2001 From: dominik-zeglen Date: Tue, 19 Nov 2019 17:50:40 +0100 Subject: [PATCH] Use product search hook --- src/collections/views/CollectionDetails.tsx | 45 ++++++------- .../AssignProductDialog.tsx | 2 +- src/discounts/views/SaleDetails.tsx | 67 +++++++++---------- src/discounts/views/VoucherDetails.tsx | 67 +++++++++---------- .../types/SearchProducts.ts | 0 .../useProductSearch.ts} | 4 +- 6 files changed, 89 insertions(+), 96 deletions(-) rename src/{containers/SearchProducts => searches}/types/SearchProducts.ts (100%) rename src/{containers/SearchProducts/index.tsx => searches/useProductSearch.ts} (80%) diff --git a/src/collections/views/CollectionDetails.tsx b/src/collections/views/CollectionDetails.tsx index 6832343bb..0fe3b6da9 100644 --- a/src/collections/views/CollectionDetails.tsx +++ b/src/collections/views/CollectionDetails.tsx @@ -13,8 +13,8 @@ import usePaginator, { createPaginationState } from "@saleor/hooks/usePaginator"; import { commonMessages } from "@saleor/intl"; +import useProductSearch from "@saleor/searches/useProductSearch"; import { DEFAULT_INITIAL_SEARCH_DATA, PAGINATE_BY } from "../../config"; -import SearchProducts from "../../containers/SearchProducts"; import { getMutationState, maybe } from "../../misc"; import { productUrl } from "../../products/urls"; import { CollectionInput } from "../../types/globalTypes"; @@ -50,6 +50,9 @@ export const CollectionDetails: React.FC = ({ ); const paginate = usePaginator(); const intl = useIntl(); + const { search, result } = useProductSearch({ + variables: DEFAULT_INITIAL_SEARCH_DATA + }); const closeModal = () => navigate( @@ -284,29 +287,25 @@ export const CollectionDetails: React.FC = ({ toggle={toggle} toggleAll={toggleAll} /> - - {({ search, result }) => ( - - assignProduct.mutate({ - ...paginationState, - collectionId: id, - productIds: products.map(product => product.id) - }) - } - products={maybe(() => - result.data.search.edges - .map(edge => edge.node) - .filter(suggestedProduct => suggestedProduct.id) - )} - /> + + assignProduct.mutate({ + ...paginationState, + collectionId: id, + productIds: products.map(product => product.id) + }) + } + products={maybe(() => + result.data.search.edges + .map(edge => edge.node) + .filter(suggestedProduct => suggestedProduct.id) )} - + /> = ({ id, params }) => { } = useCollectionSearch({ variables: DEFAULT_INITIAL_SEARCH_DATA }); + const { + search: searchProducts, + result: searchProductsOpts + } = useProductSearch({ + variables: DEFAULT_INITIAL_SEARCH_DATA + }); const paginationState = createPaginationState(PAGINATE_BY, params); const changeTab = (tab: SaleDetailsPageTab) => { @@ -353,42 +359,33 @@ export const SaleDetails: React.FC = ({ id, params }) => { toggle={toggle} toggleAll={toggleAll} /> - - {({ - search: searchProducts, - result: searchProductsOpts - }) => ( - - saleCataloguesAdd({ - variables: { - ...paginationState, - id, - input: { - products: products.map( - product => product.id - ) - } - } - }) - } - products={maybe(() => - searchProductsOpts.data.search.edges - .map(edge => edge.node) - .filter( - suggestedProduct => suggestedProduct.id + + saleCataloguesAdd({ + variables: { + ...paginationState, + id, + input: { + products: products.map( + product => product.id ) - )} - /> + } + } + }) + } + products={maybe(() => + searchProductsOpts.data.search.edges + .map(edge => edge.node) + .filter( + suggestedProduct => suggestedProduct.id + ) )} - + /> searchCategoriesOpts.data.search.edges diff --git a/src/discounts/views/VoucherDetails.tsx b/src/discounts/views/VoucherDetails.tsx index bb37763e8..9d12ea3f0 100644 --- a/src/discounts/views/VoucherDetails.tsx +++ b/src/discounts/views/VoucherDetails.tsx @@ -18,10 +18,10 @@ import useShop from "@saleor/hooks/useShop"; import { commonMessages, sectionNames } from "@saleor/intl"; import useCategorySearch from "@saleor/searches/useCategorySearch"; import useCollectionSearch from "@saleor/searches/useCollectionSearch"; +import useProductSearch from "@saleor/searches/useProductSearch"; import { categoryUrl } from "../../categories/urls"; import { collectionUrl } from "../../collections/urls"; import { DEFAULT_INITIAL_SEARCH_DATA, PAGINATE_BY } from "../../config"; -import SearchProducts from "../../containers/SearchProducts"; import { decimal, getMutationState, joinDateTime, maybe } from "../../misc"; import { productUrl } from "../../products/urls"; import { @@ -80,6 +80,12 @@ export const VoucherDetails: React.FC = ({ } = useCollectionSearch({ variables: DEFAULT_INITIAL_SEARCH_DATA }); + const { + search: searchProducts, + result: searchProductsOpts + } = useProductSearch({ + variables: DEFAULT_INITIAL_SEARCH_DATA + }); const paginationState = createPaginationState(PAGINATE_BY, params); const changeTab = (tab: VoucherDetailsPageTab) => { @@ -509,42 +515,33 @@ export const VoucherDetails: React.FC = ({ [] )} /> - - {({ - search: searchProducts, - result: searchProductsOpts - }) => ( - - voucherCataloguesAdd({ - variables: { - ...paginationState, - id, - input: { - products: products.map( - product => product.id - ) - } - } - }) - } - products={maybe(() => - searchProductsOpts.data.search.edges - .map(edge => edge.node) - .filter( - suggestedProduct => suggestedProduct.id + + voucherCataloguesAdd({ + variables: { + ...paginationState, + id, + input: { + products: products.map( + product => product.id ) - )} - /> + } + } + }) + } + products={maybe(() => + searchProductsOpts.data.search.edges + .map(edge => edge.node) + .filter( + suggestedProduct => suggestedProduct.id + ) )} - + /> ( +export default makeTopLevelSearch( searchProducts );