diff --git a/src/hooks/makeSearch.ts b/src/hooks/makeSearch.ts index e44d272c5d2..729ab0c2268 100644 --- a/src/hooks/makeSearch.ts +++ b/src/hooks/makeSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { QueryResult } from "@apollo/client"; import { DocumentNode } from "graphql"; import { useState } from "react"; @@ -41,7 +40,7 @@ function makeSearch( variables: { ...opts.variables, query: searchQuery, - }, + } as TVariables, }); return { diff --git a/src/hooks/makeTopLevelSearch/makeTopLevelSearch.ts b/src/hooks/makeTopLevelSearch/makeTopLevelSearch.ts index 741128dbc9e..77ef81491f7 100644 --- a/src/hooks/makeTopLevelSearch/makeTopLevelSearch.ts +++ b/src/hooks/makeTopLevelSearch/makeTopLevelSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { PageInfoFragment } from "@dashboard/graphql"; import { DocumentNode } from "graphql"; @@ -10,7 +9,7 @@ export interface SearchData { node: any; }>; pageInfo: PageInfoFragment; - }; + } | null; } export interface ResultSearchData { @@ -28,11 +27,15 @@ function makeTopLevelSearch, ); } }); diff --git a/src/searches/useAttributeSearch.ts b/src/searches/useAttributeSearch.ts index 24afbab25cd..d6a4e8df7a9 100644 --- a/src/searches/useAttributeSearch.ts +++ b/src/searches/useAttributeSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchAttributesDocument, diff --git a/src/searches/useAttributeValueSearch.ts b/src/searches/useAttributeValueSearch.ts index 4eeaf0ae917..a663999a308 100644 --- a/src/searches/useAttributeValueSearch.ts +++ b/src/searches/useAttributeValueSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql, useApolloClient } from "@apollo/client"; import { SearchAttributeValuesDocument, @@ -39,18 +38,19 @@ export function useSearchAttributeValuesSuggestions() { query, }, }) - .then(({ data }) => - mapEdgesToItems(data.attribute.choices).map(({ name, slug }) => ({ - label: name, - value: slug, - })), + .then( + ({ data }) => + mapEdgesToItems(data.attribute?.choices ?? undefined)?.map(({ name, slug }) => ({ + label: name, + value: slug, + })) ?? [], ); } export default makeSearch( SearchAttributeValuesDocument, result => { - if (result.data?.attribute.choices.pageInfo.hasNextPage) { + if (result.data?.attribute?.choices?.pageInfo?.hasNextPage) { result.loadMore( (prev, next) => { if ( @@ -60,15 +60,19 @@ export default makeSearch, ); } }, diff --git a/src/searches/useAvailableInGridAttributesSearch.ts b/src/searches/useAvailableInGridAttributesSearch.ts index a57417a3a77..7b2b986a378 100644 --- a/src/searches/useAvailableInGridAttributesSearch.ts +++ b/src/searches/useAvailableInGridAttributesSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchAvailableInGridAttributesDocument, @@ -32,10 +31,16 @@ export default makeSearch< SearchAvailableInGridAttributesQuery, SearchAvailableInGridAttributesQueryVariables >(SearchAvailableInGridAttributesDocument, result => { - if (result.data?.availableInGrid.pageInfo.hasNextPage) { + if (result.data?.availableInGrid?.pageInfo?.hasNextPage) { result.loadMore( (prev, next) => { - if (prev.availableInGrid.pageInfo.endCursor === next.availableInGrid.pageInfo.endCursor) { + if ( + prev.availableInGrid?.pageInfo?.endCursor === next.availableInGrid?.pageInfo?.endCursor + ) { + return prev; + } + + if (!next.availableInGrid || !prev.availableInGrid) { return prev; } @@ -43,7 +48,7 @@ export default makeSearch< ...prev, availableInGrid: { ...prev.availableInGrid, - edges: [...prev.availableInGrid.edges, ...next.availableInGrid.edges], + edges: [...(prev.availableInGrid.edges ?? []), ...(next.availableInGrid.edges ?? [])], pageInfo: next.availableInGrid.pageInfo, }, } as SearchAvailableInGridAttributesQuery; @@ -51,7 +56,7 @@ export default makeSearch< { ...result.variables, after: result.data.availableInGrid.pageInfo.endCursor, - }, + } as Partial, ); } }); diff --git a/src/searches/useAvailablePageAttributesSearch.ts b/src/searches/useAvailablePageAttributesSearch.ts index 72a27a64d63..f35ebc4e913 100644 --- a/src/searches/useAvailablePageAttributesSearch.ts +++ b/src/searches/useAvailablePageAttributesSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchAvailablePageAttributesDocument, @@ -28,33 +27,40 @@ export const searchPageAttributes = gql` export default makeSearch< SearchAvailablePageAttributesQuery, SearchAvailablePageAttributesQueryVariables ->(SearchAvailablePageAttributesDocument, result => - result.loadMore( - (prev, next) => { - if ( - prev.pageType.availableAttributes.pageInfo.endCursor === - next.pageType.availableAttributes.pageInfo.endCursor - ) { - return prev; - } +>(SearchAvailablePageAttributesDocument, result => { + if (result.data?.pageType?.availableAttributes?.pageInfo?.hasNextPage) { + result.loadMore( + (prev, next) => { + if ( + prev.pageType?.availableAttributes?.pageInfo?.endCursor === + next.pageType?.availableAttributes?.pageInfo?.endCursor + ) { + return prev; + } - return { - ...prev, - pageType: { - ...prev.pageType, - availableAttributes: { - ...prev.pageType.availableAttributes, - edges: [ - ...prev.pageType.availableAttributes.edges, - ...next.pageType.availableAttributes.edges, - ], - pageInfo: next.pageType.availableAttributes.pageInfo, + if (!next.pageType || !next.pageType.availableAttributes || !prev.pageType) { + return prev; + } + + return { + ...prev, + pageType: { + ...prev.pageType, + availableAttributes: { + ...(prev.pageType.availableAttributes ?? next.pageType.availableAttributes), + edges: [ + ...(prev.pageType.availableAttributes?.edges ?? []), + ...(next.pageType.availableAttributes.edges ?? []), + ], + pageInfo: next.pageType.availableAttributes.pageInfo, + }, }, - }, - }; - }, - { - after: result.data.pageType.availableAttributes.pageInfo.endCursor, - }, - ), -); + }; + }, + { + ...result.variables, + after: result.data.pageType.availableAttributes.pageInfo.endCursor, + } as Partial, + ); + } +}); diff --git a/src/searches/useAvailableProductAttributeSearch.ts b/src/searches/useAvailableProductAttributeSearch.ts index 9912f2487d6..5d06ccd3fd1 100644 --- a/src/searches/useAvailableProductAttributeSearch.ts +++ b/src/searches/useAvailableProductAttributeSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchAvailableProductAttributesDocument, @@ -28,33 +27,40 @@ export const searchProductAttributes = gql` export default makeSearch< SearchAvailableProductAttributesQuery, SearchAvailableProductAttributesQueryVariables ->(SearchAvailableProductAttributesDocument, result => - result.loadMore( - (prev, next) => { - if ( - prev.productType.availableAttributes.pageInfo.endCursor === - next.productType.availableAttributes.pageInfo.endCursor - ) { - return prev; - } +>(SearchAvailableProductAttributesDocument, result => { + if (result.data?.productType?.availableAttributes?.pageInfo?.hasNextPage) { + result.loadMore( + (prev, next) => { + if ( + prev.productType?.availableAttributes?.pageInfo?.endCursor === + next.productType?.availableAttributes?.pageInfo?.endCursor + ) { + return prev; + } - return { - ...prev, - productType: { - ...prev.productType, - availableAttributes: { - ...prev.productType.availableAttributes, - edges: [ - ...prev.productType.availableAttributes.edges, - ...next.productType.availableAttributes.edges, - ], - pageInfo: next.productType.availableAttributes.pageInfo, + if (!next.productType || !next.productType.availableAttributes || !prev.productType) { + return prev; + } + + return { + ...prev, + productType: { + ...prev.productType, + availableAttributes: { + ...(prev.productType.availableAttributes ?? next.productType.availableAttributes), + edges: [ + ...(prev.productType.availableAttributes?.edges ?? []), + ...(next.productType.availableAttributes.edges ?? []), + ], + pageInfo: next.productType.availableAttributes.pageInfo, + }, }, - }, - }; - }, - { - after: result.data.productType.availableAttributes.pageInfo.endCursor, - }, - ), -); + }; + }, + { + ...result.variables, + after: result.data.productType.availableAttributes.pageInfo.endCursor, + } as Partial, + ); + } +}); diff --git a/src/searches/useCategorySearch.ts b/src/searches/useCategorySearch.ts index 31e09a76636..e439ba69c9d 100644 --- a/src/searches/useCategorySearch.ts +++ b/src/searches/useCategorySearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchCategoriesDocument, diff --git a/src/searches/useCollectionSearch.ts b/src/searches/useCollectionSearch.ts index ce2beec07af..c87b0c837a9 100644 --- a/src/searches/useCollectionSearch.ts +++ b/src/searches/useCollectionSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchCollectionsDocument, diff --git a/src/searches/useCustomerSearch.ts b/src/searches/useCustomerSearch.ts index 47cd1556284..24c3e28b0af 100644 --- a/src/searches/useCustomerSearch.ts +++ b/src/searches/useCustomerSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchCustomersDocument, diff --git a/src/searches/useGiftCardTagsSearch.ts b/src/searches/useGiftCardTagsSearch.ts index c04daad4bc3..bc5b6597e8c 100644 --- a/src/searches/useGiftCardTagsSearch.ts +++ b/src/searches/useGiftCardTagsSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchGiftCardTagsDocument, diff --git a/src/searches/useOrderVariantSearch.ts b/src/searches/useOrderVariantSearch.ts index 4397514b2e2..dbbc1258750 100644 --- a/src/searches/useOrderVariantSearch.ts +++ b/src/searches/useOrderVariantSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchOrderVariantDocument, diff --git a/src/searches/usePageSearch.ts b/src/searches/usePageSearch.ts index 5d519fdfe76..d289fc7f2b6 100644 --- a/src/searches/usePageSearch.ts +++ b/src/searches/usePageSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchPagesDocument, diff --git a/src/searches/usePageTypeSearch.ts b/src/searches/usePageTypeSearch.ts index 646b7b7112a..e5dd7ebd1b1 100644 --- a/src/searches/usePageTypeSearch.ts +++ b/src/searches/usePageTypeSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchPageTypesDocument, diff --git a/src/searches/usePermissionGroupSearch.ts b/src/searches/usePermissionGroupSearch.ts index 7e34ffb14ec..12a816ead60 100644 --- a/src/searches/usePermissionGroupSearch.ts +++ b/src/searches/usePermissionGroupSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchPermissionGroupsDocument, diff --git a/src/searches/useProductSearch.ts b/src/searches/useProductSearch.ts index b1bb8048c19..9f190407bc1 100644 --- a/src/searches/useProductSearch.ts +++ b/src/searches/useProductSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchProductsDocument, diff --git a/src/searches/useProductTypeSearch.ts b/src/searches/useProductTypeSearch.ts index b4e47a8d220..6e3b8674753 100644 --- a/src/searches/useProductTypeSearch.ts +++ b/src/searches/useProductTypeSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql, useApolloClient } from "@apollo/client"; import { SearchProductTypesDocument, @@ -36,11 +35,12 @@ export function useSearchProductTypes() { query, }, }) - .then(({ data }) => - mapEdgesToItems(data.search).map(({ name, id }) => ({ - label: name, - value: id, - })), + .then( + ({ data }) => + mapEdgesToItems(data.search ?? undefined)?.map(({ name, id }) => ({ + label: name, + value: id, + })) ?? [], ); } diff --git a/src/searches/useShippingZonesSearch.ts b/src/searches/useShippingZonesSearch.ts index 4f554188107..e6ab5964901 100644 --- a/src/searches/useShippingZonesSearch.ts +++ b/src/searches/useShippingZonesSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchShippingZonesDocument, diff --git a/src/searches/useStaffMemberSearch.ts b/src/searches/useStaffMemberSearch.ts index 270207370e3..11b949d9736 100644 --- a/src/searches/useStaffMemberSearch.ts +++ b/src/searches/useStaffMemberSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchStaffMembersDocument, diff --git a/src/searches/useWarehouseSearch.ts b/src/searches/useWarehouseSearch.ts index 5388c9f8425..9f5e063b8d5 100644 --- a/src/searches/useWarehouseSearch.ts +++ b/src/searches/useWarehouseSearch.ts @@ -1,4 +1,3 @@ -// @ts-strict-ignore import { gql } from "@apollo/client"; import { SearchWarehousesDocument,