diff --git a/schema.graphql b/schema.graphql index b21740455..117ebae11 100644 --- a/schema.graphql +++ b/schema.graphql @@ -413,7 +413,7 @@ type Attribute implements Node & ObjectWithMetadata { slug: String type: AttributeTypeEnum unit: MeasurementUnitsEnum - values(before: String, after: String, first: Int, last: Int): AttributeValueCountableConnection + values(filter: AttributeValueFilterInput, before: String, after: String, first: Int, last: Int): AttributeValueCountableConnection valueRequired: Boolean! visibleInStorefront: Boolean! filterableInStorefront: Boolean! @@ -637,6 +637,10 @@ type AttributeValueDelete { attributeValue: AttributeValue } +input AttributeValueFilterInput { + search: String +} + input AttributeValueInput { id: ID values: [String] diff --git a/src/attributes/components/AttributeValueEditDialog/AttributeValueEditDialog.tsx b/src/attributes/components/AttributeValueEditDialog/AttributeValueEditDialog.tsx index 079747144..d19d542f5 100644 --- a/src/attributes/components/AttributeValueEditDialog/AttributeValueEditDialog.tsx +++ b/src/attributes/components/AttributeValueEditDialog/AttributeValueEditDialog.tsx @@ -19,13 +19,11 @@ import { getFormErrors } from "@saleor/utils/errors"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; -import { AttributeDetails_attribute_values_edges_node } from "../../types/AttributeDetails"; - export interface AttributeValueEditDialogFormData { name: string; } export interface AttributeValueEditDialogProps { - attributeValue: AttributeDetails_attribute_values_edges_node | null; + attributeValue: AttributeValueEditDialogFormData | null; confirmButtonState: ConfirmButtonTransitionState; disabled: boolean; errors: AttributeErrorFragment[]; diff --git a/src/attributes/fixtures.ts b/src/attributes/fixtures.ts index 3228f42bf..d1f3908ec 100644 --- a/src/attributes/fixtures.ts +++ b/src/attributes/fixtures.ts @@ -82,30 +82,48 @@ export const attributes: Array & +export type AttributeAddUrlQueryParams = Dialog & SingleAction; export const attributeAddPath = urlJoin(attributeSection, "add"); export const attributeAddUrl = (params?: AttributeAddUrlQueryParams) => diff --git a/src/attributes/utils/handlers.ts b/src/attributes/utils/handlers.ts index bbd0d1f61..768444df2 100644 --- a/src/attributes/utils/handlers.ts +++ b/src/attributes/utils/handlers.ts @@ -12,6 +12,7 @@ import { FormsetData } from "@saleor/hooks/useFormset"; import { PageDetails_page_attributes } from "@saleor/pages/types/PageDetails"; +import { ProductDetails_product_attributes } from "@saleor/products/types/ProductDetails"; import { FetchMoreProps, ReorderEvent } from "@saleor/types"; import { AttributeEntityTypeEnum, @@ -232,7 +233,9 @@ export const handleUploadMultipleFiles = async ( export const handleDeleteMultipleAttributeValues = async ( attributesWithNewFileValue: FormsetData, - attributes: PageDetails_page_attributes[], + attributes: Array< + PageDetails_page_attributes | ProductDetails_product_attributes + >, deleteAttributeValue: ( variables: AttributeValueDeleteVariables ) => Promise> diff --git a/src/attributes/views/AttributeCreate/AttributeCreate.tsx b/src/attributes/views/AttributeCreate/AttributeCreate.tsx index 14afb25cb..17deff422 100644 --- a/src/attributes/views/AttributeCreate/AttributeCreate.tsx +++ b/src/attributes/views/AttributeCreate/AttributeCreate.tsx @@ -1,11 +1,9 @@ import { getAttributeData } from "@saleor/attributes/utils/data"; import { AttributeErrorFragment } from "@saleor/fragments/types/AttributeErrorFragment"; import useListSettings from "@saleor/hooks/useListSettings"; +import useLocalPageInfo, { getMaxPage } from "@saleor/hooks/useLocalPageInfo"; import useNavigator from "@saleor/hooks/useNavigator"; import useNotifier from "@saleor/hooks/useNotifier"; -import usePaginator, { - createPaginationState -} from "@saleor/hooks/usePaginator"; import { getStringOrPlaceholder } from "@saleor/misc"; import { ListViews, ReorderEvent } from "@saleor/types"; import { AttributeErrorCode } from "@saleor/types/globalTypes"; @@ -61,7 +59,6 @@ function areValuesEqual( const AttributeDetails: React.FC = ({ params }) => { const navigate = useNavigator(); - const paginate = usePaginator(); const notify = useNotifier(); const intl = useIntl(); @@ -75,17 +72,14 @@ const AttributeDetails: React.FC = ({ params }) => { const { updateListSettings, settings } = useListSettings( ListViews.ATTRIBUTE_VALUE_LIST ); - const paginationState = createPaginationState(settings?.rowNumber, params); - const { loadNextPage, loadPreviousPage, pageInfo } = paginate( - { - endCursor: "", - hasNextPage: false, - hasPreviousPage: false, - startCursor: "" - }, - paginationState, - params - ); + + const { + pageInfo, + pageValues, + loadNextPage, + loadPreviousPage, + loadPage + } = useLocalPageInfo(values, settings?.rowNumber); const [attributeCreate, attributeCreateOpts] = useAttributeCreateMutation({ onCompleted: data => { @@ -103,7 +97,9 @@ const AttributeDetails: React.FC = ({ params }) => { const [updateMetadata] = useMetadataUpdate({}); const [updatePrivateMetadata] = usePrivateMetadataUpdate({}); - const id = params.id ? parseInt(params.id, 0) : undefined; + const id = params.id + ? parseInt(params.id, 0) + pageInfo.startCursor + : undefined; const [openModal, closeModal] = createDialogActionHandlers< AttributeAddUrlDialog, @@ -113,7 +109,8 @@ const AttributeDetails: React.FC = ({ params }) => { React.useEffect(() => setValueErrors([]), [params.action]); const handleValueDelete = () => { - setValues(remove(values[params.id], values, areValuesEqual)); + const newValues = remove(values[id], values, areValuesEqual); + setValues(newValues); closeModal(); }; const handleValueUpdate = (input: AttributeValueEditDialogFormData) => { @@ -128,12 +125,26 @@ const AttributeDetails: React.FC = ({ params }) => { if (isSelected(input, values, areValuesEqual)) { setValueErrors([attributeValueAlreadyExistsError]); } else { - setValues(add(input, values)); + const newValues = add(input, values); + setValues(newValues); + const addedToNotVisibleLastPage = + newValues.length - pageInfo.startCursor > settings.rowNumber; + if (addedToNotVisibleLastPage) { + const maxPage = getMaxPage(newValues.length, settings.rowNumber); + loadPage(maxPage); + } closeModal(); } }; const handleValueReorder = ({ newIndex, oldIndex }: ReorderEvent) => - setValues(move(values[oldIndex], values, areValuesEqual, newIndex)); + setValues( + move( + values[pageInfo.startCursor + oldIndex], + values, + areValuesEqual, + pageInfo.startCursor + newIndex + ) + ); const handleCreate = async (data: AttributePageFormData) => { const input = getAttributeData(data, values); @@ -183,7 +194,7 @@ const AttributeDetails: React.FC = ({ params }) => { hasPreviousPage: false, startCursor: "" }, - edges: values.map((value, valueIndex) => ({ + edges: pageValues.map((value, valueIndex) => ({ __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", cursor: "1", node: { @@ -225,7 +236,7 @@ const AttributeDetails: React.FC = ({ params }) => { onConfirm={handleValueDelete} /> void; onReferencesRemove: FormsetChange; onReferencesReorder: FormsetChange; + fetchAttributeValues: (query: string) => void; + fetchMoreAttributeValues: FetchMoreProps; + onAttributeSelect: (id: string) => void; } interface AttributeRowProps extends AttributeRowHandlers { attribute: AttributeInput; + attributeValues: AttributeValueFragment[]; disabled: boolean; error: ProductErrorWithAttributesFragment | PageErrorWithAttributesFragment; loading: boolean; @@ -64,6 +70,7 @@ interface AttributeRowProps extends AttributeRowHandlers { const AttributeRow: React.FC = ({ attribute, + attributeValues, disabled, error, loading, @@ -72,7 +79,10 @@ const AttributeRow: React.FC = ({ onReferencesAddClick, onReferencesRemove, onReferencesReorder, - onChange + onChange, + fetchAttributeValues, + fetchMoreAttributeValues, + onAttributeSelect }) => { const intl = useIntl(); const classes = useStyles({}); @@ -126,15 +136,9 @@ const AttributeRow: React.FC = ({ return ( value.slug === attribute.value[0] - )?.name || - attribute.value[0] || - "" - } + displayValue={getSingleDisplayValue(attribute, attributeValues)} emptyOption={!attribute.data.isRequired} error={!!error} helperText={getErrorMessage(error, intl)} @@ -142,7 +146,10 @@ const AttributeRow: React.FC = ({ label={intl.formatMessage(messages.valueLabel)} value={attribute.value[0]} onChange={event => onChange(attribute.id, event.target.value)} - allowCustomValues={!attribute.data.isRequired} + allowCustomValues={true} + fetchChoices={fetchAttributeValues} + {...fetchMoreAttributeValues} + onClick={() => onAttributeSelect(attribute.id)} /> ); @@ -192,8 +199,8 @@ const AttributeRow: React.FC = ({ return ( = ({ name={`attribute:${attribute.label}`} value={attribute.value} onChange={event => onMultiChange(attribute.id, event.target.value)} - allowCustomValues={!attribute.data.isRequired} + allowCustomValues={true} + fetchChoices={fetchAttributeValues} + {...fetchMoreAttributeValues} + onClick={() => onAttributeSelect(attribute.id)} /> ); diff --git a/src/components/Attributes/Attributes.stories.tsx b/src/components/Attributes/Attributes.stories.tsx index 679184415..5f35f9d7f 100644 --- a/src/components/Attributes/Attributes.stories.tsx +++ b/src/components/Attributes/Attributes.stories.tsx @@ -1,4 +1,5 @@ import Attributes, { AttributesProps } from "@saleor/components/Attributes"; +import { fetchMoreProps } from "@saleor/fixtures"; import { storiesOf } from "@storybook/react"; import React from "react"; @@ -7,6 +8,7 @@ import { ATTRIBUTES, ATTRIBUTES_SELECTED } from "./fixtures"; const props: AttributesProps = { attributes: ATTRIBUTES, + attributeValues: [], disabled: false, errors: [], loading: false, @@ -15,7 +17,10 @@ const props: AttributesProps = { onMultiChange: () => undefined, onReferencesAddClick: () => undefined, onReferencesRemove: () => undefined, - onReferencesReorder: () => undefined + onReferencesReorder: () => undefined, + onAttributeSelect: () => undefined, + fetchAttributeValues: () => undefined, + fetchMoreAttributeValues: fetchMoreProps }; storiesOf("Attributes / Attributes", module) diff --git a/src/components/Attributes/Attributes.tsx b/src/components/Attributes/Attributes.tsx index 3af15082b..ca90268e1 100644 --- a/src/components/Attributes/Attributes.tsx +++ b/src/components/Attributes/Attributes.tsx @@ -8,6 +8,7 @@ import { PageErrorWithAttributesFragment } from "@saleor/fragments/types/PageErr import { ProductErrorWithAttributesFragment } from "@saleor/fragments/types/ProductErrorWithAttributesFragment"; import { FormsetAtomicData } from "@saleor/hooks/useFormset"; import { makeStyles } from "@saleor/theme"; +import { FetchMoreProps } from "@saleor/types"; import { AttributeEntityTypeEnum, AttributeInputTypeEnum, @@ -34,12 +35,16 @@ export type AttributeInput = FormsetAtomicData; export type AttributeFileInput = FormsetAtomicData; export interface AttributesProps extends AttributeRowHandlers { attributes: AttributeInput[]; + attributeValues: AttributeValueFragment[]; + fetchAttributeValues: (query: string) => void; + fetchMoreAttributeValues: FetchMoreProps; disabled: boolean; loading: boolean; errors: Array< ProductErrorWithAttributesFragment | PageErrorWithAttributesFragment >; title?: React.ReactNode; + onAttributeSelect: (id: string) => void; } const useStyles = makeStyles( @@ -109,6 +114,7 @@ const messages = defineMessages({ const Attributes: React.FC = ({ attributes, + attributeValues, errors, title, ...props @@ -158,6 +164,7 @@ const Attributes: React.FC = ({ {attributeIndex > 0 &&
} diff --git a/src/components/Attributes/utils.ts b/src/components/Attributes/utils.ts index e755678d0..793684a7b 100644 --- a/src/components/Attributes/utils.ts +++ b/src/components/Attributes/utils.ts @@ -89,17 +89,35 @@ export function getMultiChoices( })); } +export function getSingleDisplayValue( + attribute: AttributeInput, + attributeValues: AttributeValueFragment[] +): string { + return ( + attributeValues.find(value => value.slug === attribute.value[0])?.name || + attribute.data.values.find(value => value.slug === attribute.value[0]) + ?.name || + attribute.value[0] || + "" + ); +} + export function getMultiDisplayValue( - attribute: AttributeInput + attribute: AttributeInput, + attributeValues: AttributeValueFragment[] ): MultiAutocompleteChoiceType[] { if (!attribute.value) { return []; } return attribute.value.map(attributeValue => { - const definedAttributeValue = attribute.data.values.find( - definedValue => definedValue.slug === attributeValue - ); + const definedAttributeValue = + attributeValues.find( + definedValue => definedValue.slug === attributeValue + ) || + attribute.data.values.find( + definedValue => definedValue.slug === attributeValue + ); if (!!definedAttributeValue) { return { label: definedAttributeValue.name, diff --git a/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx b/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx index 3dd326e72..47ab95654 100644 --- a/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx +++ b/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx @@ -85,6 +85,7 @@ export interface MultiAutocompleteSelectFieldProps testId?: string; fetchChoices?: (value: string) => void; onChange: (event: React.ChangeEvent) => void; + onClick?: () => void; } const DebounceAutocomplete: React.ComponentType ), id: undefined, - onClick: toggleMenu + onClick: (cb: () => void) => { + toggleMenu(cb); + if (onClick) { + onClick(); + } + } }} error={error} helperText={helperText} diff --git a/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.tsx b/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.tsx index 350030dcc..e15c6cd54 100644 --- a/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.tsx +++ b/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.tsx @@ -46,6 +46,7 @@ export interface SingleAutocompleteSelectFieldProps InputProps?: InputProps; fetchChoices?: (value: string) => void; onChange: (event: React.ChangeEvent) => void; + onClick?: () => void; FormHelperTextProps?: ExtendedFormHelperTextProps; nakedInput?: boolean; } @@ -75,6 +76,7 @@ const SingleAutocompleteSelectFieldComponent: React.FC void) => { + toggleMenu(cb); + if (onClick) { + onClick(); + } + } }; const nakedInputProps = nakedInput diff --git a/src/fragments/products.ts b/src/fragments/products.ts index d071bd0bb..43c602bc3 100644 --- a/src/fragments/products.ts +++ b/src/fragments/products.ts @@ -1,6 +1,9 @@ import gql from "graphql-tag"; -import { attributeValueFragment } from "./attributes"; +import { + attributeValueFragment, + attributeValueListFragment +} from "./attributes"; import { metadataFragment } from "./metadata"; import { taxTypeFragment } from "./taxes"; import { weightFragment } from "./weight"; @@ -117,7 +120,7 @@ export const productFragment = gql` export const productVariantAttributesFragment = gql` ${priceRangeFragment} ${attributeValueFragment} - + ${attributeValueListFragment} fragment ProductVariantAttributesFragment on Product { id attributes { @@ -129,9 +132,14 @@ export const productVariantAttributesFragment = gql` entityType valueRequired unit - # values { - # ...AttributeValueFragment - # } + values( + first: $firstValues + after: $afterValues + last: $lastValues + before: $beforeValues + ) { + ...AttributeValueListFragment + } } values { ...AttributeValueFragment @@ -142,9 +150,14 @@ export const productVariantAttributesFragment = gql` variantAttributes(variantSelection: VARIANT_SELECTION) { id name - # values { - # ...AttributeValueFragment - # } + values( + first: $firstValues + after: $afterValues + last: $lastValues + before: $beforeValues + ) { + ...AttributeValueListFragment + } } } channelListings { @@ -233,7 +246,6 @@ export const productFragmentDetails = gql` `; export const variantAttributeFragment = gql` - ${attributeValueFragment} fragment VariantAttributeFragment on Attribute { id name @@ -242,8 +254,13 @@ export const variantAttributeFragment = gql` entityType valueRequired unit - # values { - # ...AttributeValueFragment + # values( + # first: $firstValues + # after: $afterValues + # last: $lastValues + # before: $beforeValues + # ) { + # ...AttributeValueListFragment # } } `; diff --git a/src/fragments/types/Product.ts b/src/fragments/types/Product.ts index b1819cd34..d55181f29 100644 --- a/src/fragments/types/Product.ts +++ b/src/fragments/types/Product.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, // GraphQL fragment: Product // ==================================================== -export interface Product_attributes_attribute_values_file { +export interface Product_attributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface Product_attributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface Product_attributes_attribute_values { +export interface Product_attributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: Product_attributes_attribute_values_file | null; + file: Product_attributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface Product_attributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: Product_attributes_attribute_values_edges_node; +} + +export interface Product_attributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: Product_attributes_attribute_values_pageInfo; + edges: Product_attributes_attribute_values_edges[]; +} + export interface Product_attributes_attribute { __typename: "Attribute"; id: string; @@ -34,7 +54,7 @@ export interface Product_attributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (Product_attributes_attribute_values | null)[] | null; + values: Product_attributes_attribute_values | null; } export interface Product_attributes_values_file { @@ -59,27 +79,47 @@ export interface Product_attributes { values: (Product_attributes_values | null)[]; } -export interface Product_productType_variantAttributes_values_file { +export interface Product_productType_variantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface Product_productType_variantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface Product_productType_variantAttributes_values { +export interface Product_productType_variantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: Product_productType_variantAttributes_values_file | null; + file: Product_productType_variantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface Product_productType_variantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: Product_productType_variantAttributes_values_edges_node; +} + +export interface Product_productType_variantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: Product_productType_variantAttributes_values_pageInfo; + edges: Product_productType_variantAttributes_values_edges[]; +} + export interface Product_productType_variantAttributes { __typename: "Attribute"; id: string; name: string | null; - values: (Product_productType_variantAttributes_values | null)[] | null; + values: Product_productType_variantAttributes_values | null; } export interface Product_productType_taxType { diff --git a/src/fragments/types/ProductVariant.ts b/src/fragments/types/ProductVariant.ts index fd3397d82..a088dd98c 100644 --- a/src/fragments/types/ProductVariant.ts +++ b/src/fragments/types/ProductVariant.ts @@ -21,22 +21,42 @@ export interface ProductVariant_privateMetadata { value: string; } -export interface ProductVariant_selectionAttributes_attribute_values_file { +export interface ProductVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariant_selectionAttributes_attribute_values { +export interface ProductVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariant_selectionAttributes_attribute_values_file | null; + file: ProductVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface ProductVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariant_selectionAttributes_attribute_values_pageInfo; + edges: ProductVariant_selectionAttributes_attribute_values_edges[]; +} + export interface ProductVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -46,7 +66,7 @@ export interface ProductVariant_selectionAttributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariant_selectionAttributes_attribute_values | null)[] | null; + values: ProductVariant_selectionAttributes_attribute_values | null; } export interface ProductVariant_selectionAttributes_values_file { @@ -71,22 +91,42 @@ export interface ProductVariant_selectionAttributes { values: (ProductVariant_selectionAttributes_values | null)[]; } -export interface ProductVariant_nonSelectionAttributes_attribute_values_file { +export interface ProductVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariant_nonSelectionAttributes_attribute_values { +export interface ProductVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariant_nonSelectionAttributes_attribute_values_file | null; + file: ProductVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface ProductVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: ProductVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface ProductVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -96,7 +136,7 @@ export interface ProductVariant_nonSelectionAttributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: ProductVariant_nonSelectionAttributes_attribute_values | null; } export interface ProductVariant_nonSelectionAttributes_values_file { diff --git a/src/fragments/types/ProductVariantAttributesFragment.ts b/src/fragments/types/ProductVariantAttributesFragment.ts index 2cc0c6657..9a714cc81 100644 --- a/src/fragments/types/ProductVariantAttributesFragment.ts +++ b/src/fragments/types/ProductVariantAttributesFragment.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum } // GraphQL fragment: ProductVariantAttributesFragment // ==================================================== -export interface ProductVariantAttributesFragment_attributes_attribute_values_file { +export interface ProductVariantAttributesFragment_attributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariantAttributesFragment_attributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariantAttributesFragment_attributes_attribute_values { +export interface ProductVariantAttributesFragment_attributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariantAttributesFragment_attributes_attribute_values_file | null; + file: ProductVariantAttributesFragment_attributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariantAttributesFragment_attributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariantAttributesFragment_attributes_attribute_values_edges_node; +} + +export interface ProductVariantAttributesFragment_attributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariantAttributesFragment_attributes_attribute_values_pageInfo; + edges: ProductVariantAttributesFragment_attributes_attribute_values_edges[]; +} + export interface ProductVariantAttributesFragment_attributes_attribute { __typename: "Attribute"; id: string; @@ -34,7 +54,7 @@ export interface ProductVariantAttributesFragment_attributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariantAttributesFragment_attributes_attribute_values | null)[] | null; + values: ProductVariantAttributesFragment_attributes_attribute_values | null; } export interface ProductVariantAttributesFragment_attributes_values_file { @@ -59,27 +79,47 @@ export interface ProductVariantAttributesFragment_attributes { values: (ProductVariantAttributesFragment_attributes_values | null)[]; } -export interface ProductVariantAttributesFragment_productType_variantAttributes_values_file { +export interface ProductVariantAttributesFragment_productType_variantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariantAttributesFragment_productType_variantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariantAttributesFragment_productType_variantAttributes_values { +export interface ProductVariantAttributesFragment_productType_variantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariantAttributesFragment_productType_variantAttributes_values_file | null; + file: ProductVariantAttributesFragment_productType_variantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariantAttributesFragment_productType_variantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariantAttributesFragment_productType_variantAttributes_values_edges_node; +} + +export interface ProductVariantAttributesFragment_productType_variantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariantAttributesFragment_productType_variantAttributes_values_pageInfo; + edges: ProductVariantAttributesFragment_productType_variantAttributes_values_edges[]; +} + export interface ProductVariantAttributesFragment_productType_variantAttributes { __typename: "Attribute"; id: string; name: string | null; - values: (ProductVariantAttributesFragment_productType_variantAttributes_values | null)[] | null; + values: ProductVariantAttributesFragment_productType_variantAttributes_values | null; } export interface ProductVariantAttributesFragment_productType { diff --git a/src/fragments/types/SelectedVariantAttributeFragment.ts b/src/fragments/types/SelectedVariantAttributeFragment.ts index 383ad35a2..7587baae7 100644 --- a/src/fragments/types/SelectedVariantAttributeFragment.ts +++ b/src/fragments/types/SelectedVariantAttributeFragment.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum } // GraphQL fragment: SelectedVariantAttributeFragment // ==================================================== -export interface SelectedVariantAttributeFragment_attribute_values_file { +export interface SelectedVariantAttributeFragment_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SelectedVariantAttributeFragment_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SelectedVariantAttributeFragment_attribute_values { +export interface SelectedVariantAttributeFragment_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SelectedVariantAttributeFragment_attribute_values_file | null; + file: SelectedVariantAttributeFragment_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SelectedVariantAttributeFragment_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SelectedVariantAttributeFragment_attribute_values_edges_node; +} + +export interface SelectedVariantAttributeFragment_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SelectedVariantAttributeFragment_attribute_values_pageInfo; + edges: SelectedVariantAttributeFragment_attribute_values_edges[]; +} + export interface SelectedVariantAttributeFragment_attribute { __typename: "Attribute"; id: string; @@ -34,7 +54,7 @@ export interface SelectedVariantAttributeFragment_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SelectedVariantAttributeFragment_attribute_values | null)[] | null; + values: SelectedVariantAttributeFragment_attribute_values | null; } export interface SelectedVariantAttributeFragment_values_file { diff --git a/src/fragments/types/VariantAttributeFragment.ts b/src/fragments/types/VariantAttributeFragment.ts index 04313d81f..5564a022c 100644 --- a/src/fragments/types/VariantAttributeFragment.ts +++ b/src/fragments/types/VariantAttributeFragment.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum } // GraphQL fragment: VariantAttributeFragment // ==================================================== -export interface VariantAttributeFragment_values_file { +export interface VariantAttributeFragment_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantAttributeFragment_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantAttributeFragment_values { +export interface VariantAttributeFragment_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantAttributeFragment_values_file | null; + file: VariantAttributeFragment_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantAttributeFragment_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantAttributeFragment_values_edges_node; +} + +export interface VariantAttributeFragment_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantAttributeFragment_values_pageInfo; + edges: VariantAttributeFragment_values_edges[]; +} + export interface VariantAttributeFragment { __typename: "Attribute"; id: string; @@ -34,5 +54,5 @@ export interface VariantAttributeFragment { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantAttributeFragment_values | null)[] | null; + values: VariantAttributeFragment_values | null; } diff --git a/src/hooks/useLocalPageInfo.ts b/src/hooks/useLocalPageInfo.ts new file mode 100644 index 000000000..075c5605c --- /dev/null +++ b/src/hooks/useLocalPageInfo.ts @@ -0,0 +1,51 @@ +import { useEffect, useState } from "react"; + +export interface PageInfo { + endCursor: number; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: number; +} + +export function getMaxPage(valuesCount: number, paginateBy: number) { + return Math.floor(Math.max(0, valuesCount - 1) / paginateBy); +} + +function useLocalPageInfo(values: T[], paginateBy: number) { + const [page, setPage] = useState(0); + + const maxPage = getMaxPage(values.length, paginateBy); + + useEffect(() => { + if (page > maxPage) { + setPage(maxPage); + } + }, [values.length, paginateBy]); + + const hasPreviousPage = page > 0; + const hasNextPage = page < maxPage; + + const startCursor = page * paginateBy; + const endCursor = hasNextPage + ? startCursor + paginateBy - 1 + : Math.max(0, values.length - 1); + + const pageValues = values.slice(startCursor, endCursor + 1); + + const loadPreviousPage = () => setPage(page - 1); + const loadNextPage = () => setPage(page + 1); + + return { + pageInfo: { + hasNextPage, + hasPreviousPage, + endCursor, + startCursor + }, + pageValues, + loadNextPage, + loadPreviousPage, + loadPage: setPage + }; +} +export default useLocalPageInfo; diff --git a/src/pages/components/PageDetailsPage/PageDetailsPage.tsx b/src/pages/components/PageDetailsPage/PageDetailsPage.tsx index e35e9a17f..9008e4c82 100644 --- a/src/pages/components/PageDetailsPage/PageDetailsPage.tsx +++ b/src/pages/components/PageDetailsPage/PageDetailsPage.tsx @@ -155,6 +155,7 @@ const PageDetailsPage: React.FC = ({ {data.attributes.length > 0 && ( = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={() => undefined} + fetchMoreAttributeValues={undefined} + onAttributeSelect={() => undefined} /> )} diff --git a/src/productTypes/fixtures.ts b/src/productTypes/fixtures.ts index 7fccb75a2..655278e1c 100644 --- a/src/productTypes/fixtures.ts +++ b/src/productTypes/fixtures.ts @@ -23,32 +23,50 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "author", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI0", - name: "John Doe", - reference: null, - slug: "john-doe", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI1", - name: "Milionare Pirate", - reference: null, - slug: "milionare-pirate", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI0", + name: "John Doe", + reference: null, + slug: "john-doe", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI1", + name: "Milionare Pirate", + reference: null, + slug: "milionare-pirate", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -61,56 +79,82 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "box-size", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE1", - name: "100g", - reference: null, - slug: "100g", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE2", - name: "250g", - reference: null, - slug: "250g", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE3", - name: "500g", - reference: null, - slug: "500g", - sortOrder: 2, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE4", - name: "1kg", - reference: null, - slug: "1kg", - sortOrder: 3, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE1", + name: "100g", + reference: null, + slug: "100g", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE2", + name: "250g", + reference: null, + slug: "250g", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE3", + name: "500g", + reference: null, + slug: "500g", + sortOrder: 2, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE4", + name: "1kg", + reference: null, + slug: "1kg", + sortOrder: 3, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -123,20 +167,34 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "brand", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjY=", - name: "Saleor", - reference: null, - slug: "saleor", - sortOrder: 0, - type: "STRING", - value: "", - richText: null - } - ] + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" + }, + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjY=", + name: "Saleor", + reference: null, + slug: "saleor", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -149,44 +207,66 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "candy-box-size", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIx", - name: "100g", - reference: null, - slug: "100g", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIy", - name: "250g", - reference: null, - slug: "250g", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIz", - name: "500g", - reference: null, - slug: "500g", - sortOrder: 2, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIx", + name: "100g", + reference: null, + slug: "100g", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIy", + name: "250g", + reference: null, + slug: "250g", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIz", + name: "500g", + reference: null, + slug: "500g", + sortOrder: 2, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -199,32 +279,50 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "coffee-genre", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEz", - name: "Arabica", - reference: null, - slug: "arabica", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE0", - name: "Robusta", - reference: null, - slug: "robusta", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEz", + name: "Arabica", + reference: null, + slug: "arabica", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE0", + name: "Robusta", + reference: null, + slug: "robusta", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -237,44 +335,66 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "collar", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjM=", - name: "Round", - reference: null, - slug: "round", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjQ=", - name: "V-Neck", - reference: null, - slug: "v-neck", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjU=", - name: "Polo", - reference: null, - slug: "polo", - sortOrder: 2, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjM=", + name: "Round", + reference: null, + slug: "round", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjQ=", + name: "V-Neck", + reference: null, + slug: "v-neck", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjU=", + name: "Polo", + reference: null, + slug: "polo", + sortOrder: 2, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -287,32 +407,50 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "color", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE=", - name: "Blue", - reference: null, - slug: "blue", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI=", - name: "White", - reference: null, - slug: "white", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE=", + name: "Blue", + reference: null, + slug: "blue", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI=", + name: "White", + reference: null, + slug: "white", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -325,80 +463,114 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "cover", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMw", - name: "Soft", - reference: null, - slug: "soft", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMx", - name: "Hard", - reference: null, - slug: "hard", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMy", - name: "Middle soft", - reference: null, - slug: "middle-soft", - sortOrder: 2, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMz", - name: "Middle hard", - reference: null, - slug: "middle-hard", - sortOrder: 3, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjM0", - name: "Middle", - reference: null, - slug: "middle", - sortOrder: 4, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjM1", - name: "Very hard", - reference: null, - slug: "very-hard", - sortOrder: 5, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMw", + name: "Soft", + reference: null, + slug: "soft", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMx", + name: "Hard", + reference: null, + slug: "hard", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMy", + name: "Middle soft", + reference: null, + slug: "middle-soft", + sortOrder: 2, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjMz", + name: "Middle hard", + reference: null, + slug: "middle-hard", + sortOrder: 3, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjM0", + name: "Middle", + reference: null, + slug: "middle", + sortOrder: 4, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjM1", + name: "Very hard", + reference: null, + slug: "very-hard", + sortOrder: 5, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -411,32 +583,50 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "flavor", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE5", - name: "Sour", - reference: null, - slug: "sour", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIw", - name: "Sweet", - reference: null, - slug: "sweet", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjE5", + name: "Sour", + reference: null, + slug: "sour", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjIw", + name: "Sweet", + reference: null, + slug: "sweet", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -449,32 +639,50 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "language", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI4", - name: "English", - reference: null, - slug: "english", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI5", - name: "Pirate", - reference: null, - slug: "pirate", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI4", + name: "English", + reference: null, + slug: "english", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI5", + name: "Pirate", + reference: null, + slug: "pirate", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -487,32 +695,50 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "publisher", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI2", - name: "Mirumee Press", - reference: null, - slug: "mirumee-press", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI3", - name: "Saleor Publishing", - reference: null, - slug: "saleor-publishing", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI2", + name: "Mirumee Press", + reference: null, + slug: "mirumee-press", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjI3", + name: "Saleor Publishing", + reference: null, + slug: "saleor-publishing", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + } + ] + } } }, { @@ -525,80 +751,114 @@ export const attributes: ProductType_productType_productAttributes[] = [ slug: "size", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjc=", - name: "XS", - reference: null, - slug: "xs", - sortOrder: 0, - type: "STRING", - value: "", - richText: null + values: { + __typename: "AttributeValueCountableConnection" as "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" as "PageInfo" }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjg=", - name: "S", - reference: null, - slug: "s", - sortOrder: 1, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjk=", - name: "M", - reference: null, - slug: "m", - sortOrder: 2, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEw", - name: "L", - reference: null, - slug: "l", - sortOrder: 3, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEx", - name: "XL", - reference: null, - slug: "xl", - sortOrder: 4, - type: "STRING", - value: "", - richText: null - }, - { - __typename: "AttributeValue" as "AttributeValue", - file: null, - id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEy", - name: "XXL", - reference: null, - slug: "xxl", - sortOrder: 5, - type: "STRING", - value: "", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjc=", + name: "XS", + reference: null, + slug: "xs", + sortOrder: 0, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjg=", + name: "S", + reference: null, + slug: "s", + sortOrder: 1, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjk=", + name: "M", + reference: null, + slug: "m", + sortOrder: 2, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEw", + name: "L", + reference: null, + slug: "l", + sortOrder: 3, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEx", + name: "XL", + reference: null, + slug: "xl", + sortOrder: 4, + type: "STRING", + value: "", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge" as "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue" as "AttributeValue", + file: null, + id: "UHJvZHVjdEF0dHJpYnV0ZVZhbHVlOjEy", + name: "XXL", + reference: null, + slug: "xxl", + sortOrder: 5, + type: "STRING", + value: "", + richText: null + } + } + ] + } } } ].map(edge => edge.node); diff --git a/src/products/components/ProductCreatePage/ProductCreatePage.tsx b/src/products/components/ProductCreatePage/ProductCreatePage.tsx index f904136c7..9e2284ea1 100644 --- a/src/products/components/ProductCreatePage/ProductCreatePage.tsx +++ b/src/products/components/ProductCreatePage/ProductCreatePage.tsx @@ -25,6 +25,7 @@ import { sectionNames } from "@saleor/intl"; import ProductVariantPrice from "@saleor/products/components/ProductVariantPrice"; import { ProductType_productType } from "@saleor/products/types/ProductType"; import { getChoices } from "@saleor/products/utils/data"; +import { SearchAttributeValues_attribute_values_edges_node } from "@saleor/searches/types/SearchAttributeValues"; import { SearchCategories_search_edges_node } from "@saleor/searches/types/SearchCategories"; import { SearchCollections_search_edges_node } from "@saleor/searches/types/SearchCollections"; import { SearchPages_search_edges_node } from "@saleor/searches/types/SearchPages"; @@ -54,10 +55,12 @@ interface ProductCreatePageProps { currentChannels: ChannelData[]; collections: SearchCollections_search_edges_node[]; categories: SearchCategories_search_edges_node[]; + attributeValues: SearchAttributeValues_attribute_values_edges_node[]; loading: boolean; fetchMoreCategories: FetchMoreProps; fetchMoreCollections: FetchMoreProps; fetchMoreProductTypes: FetchMoreProps; + fetchMoreAttributeValues?: FetchMoreProps; initial?: Partial; productTypes?: SearchProductTypes_search_edges_node[]; referencePages?: SearchPages_search_edges_node[]; @@ -71,6 +74,8 @@ interface ProductCreatePageProps { fetchCategories: (data: string) => void; fetchCollections: (data: string) => void; fetchProductTypes: (data: string) => void; + fetchAttributeValues: (query: string) => void; + onAttributeSelect: (id: string) => void; onWarehouseConfigure: () => void; openChannelsModal: () => void; onChannelsChange: (data: ChannelData[]) => void; @@ -93,6 +98,7 @@ export const ProductCreatePage: React.FC = ({ loading, categories: categoryChoiceList, collections: collectionChoiceList, + attributeValues, errors, fetchCategories, fetchCollections, @@ -121,8 +127,11 @@ export const ProductCreatePage: React.FC = ({ fetchMoreReferencePages, fetchReferenceProducts, fetchMoreReferenceProducts, + fetchAttributeValues, + fetchMoreAttributeValues, onCloseDialog, - onSelectProductType + onSelectProductType, + onAttributeSelect }: ProductCreatePageProps) => { const intl = useIntl(); @@ -222,6 +231,7 @@ export const ProductCreatePage: React.FC = ({ {data.attributes.length > 0 && ( = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={fetchAttributeValues} + fetchMoreAttributeValues={fetchMoreAttributeValues} + onAttributeSelect={onAttributeSelect} /> )} diff --git a/src/products/components/ProductUpdatePage/ProductUpdatePage.test.tsx b/src/products/components/ProductUpdatePage/ProductUpdatePage.test.tsx index caee93953..125a2aa94 100644 --- a/src/products/components/ProductUpdatePage/ProductUpdatePage.test.tsx +++ b/src/products/components/ProductUpdatePage/ProductUpdatePage.test.tsx @@ -36,8 +36,10 @@ const props: ProductUpdatePageProps = { errors: [], fetchCategories: () => undefined, fetchCollections: () => undefined, + fetchAttributeValues: () => undefined, fetchMoreCategories: fetchMoreProps, fetchMoreCollections: fetchMoreProps, + fetchMoreAttributeValues: fetchMoreProps, hasChannelChanged: false, header: product.name, media: product.media, @@ -58,6 +60,7 @@ const props: ProductUpdatePageProps = { onVariantsAdd: () => undefined, onWarehouseConfigure: () => undefined, openChannelsModal: () => undefined, + onAttributeSelect: () => undefined, placeholderImage, product, referencePages: [], @@ -66,7 +69,8 @@ const props: ProductUpdatePageProps = { selectedChannelId: "123", taxTypes, variants: product.variants, - warehouses: warehouseList + warehouses: warehouseList, + attributeValues: [] }; const selectors = { diff --git a/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx b/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx index 8762792f6..2488e8896 100644 --- a/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx +++ b/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx @@ -29,6 +29,7 @@ import { maybe } from "@saleor/misc"; import ProductExternalMediaDialog from "@saleor/products/components/ProductExternalMediaDialog"; import ProductVariantPrice from "@saleor/products/components/ProductVariantPrice"; import { ChannelsWithVariantsData } from "@saleor/products/views/ProductUpdate/types"; +import { SearchAttributeValues_attribute_values_edges_node } from "@saleor/searches/types/SearchAttributeValues"; import { SearchCategories_search_edges_node } from "@saleor/searches/types/SearchCategories"; import { SearchCollections_search_edges_node } from "@saleor/searches/types/SearchCollections"; import { SearchPages_search_edges_node } from "@saleor/searches/types/SearchPages"; @@ -75,6 +76,7 @@ export interface ProductUpdatePageProps extends ListActions, ChannelProps { placeholderImage: string; collections: SearchCollections_search_edges_node[]; categories: SearchCategories_search_edges_node[]; + attributeValues: SearchAttributeValues_attribute_values_edges_node[]; disabled: boolean; fetchMoreCategories: FetchMoreProps; fetchMoreCollections: FetchMoreProps; @@ -93,11 +95,14 @@ export interface ProductUpdatePageProps extends ListActions, ChannelProps { assignReferencesAttributeId?: string; fetchMoreReferencePages?: FetchMoreProps; fetchMoreReferenceProducts?: FetchMoreProps; + fetchMoreAttributeValues?: FetchMoreProps; isSimpleProduct: boolean; fetchCategories: (query: string) => void; fetchCollections: (query: string) => void; fetchReferencePages?: (data: string) => void; fetchReferenceProducts?: (data: string) => void; + fetchAttributeValues: (query: string) => void; + onAttributeSelect: (id: string) => void; onAssignReferencesClick: (attribute: AttributeInput) => void; onCloseDialog: () => void; onVariantsAdd: () => void; @@ -134,6 +139,7 @@ export const ProductUpdatePage: React.FC = ({ categories: categoryChoiceList, channelsErrors, collections: collectionChoiceList, + attributeValues, isSimpleProduct, errors, fetchCategories, @@ -185,9 +191,12 @@ export const ProductUpdatePage: React.FC = ({ fetchMoreReferencePages, fetchReferenceProducts, fetchMoreReferenceProducts, + fetchAttributeValues, + fetchMoreAttributeValues, onCloseDialog, channelsWithVariantsData, - onChannelsChange + onChannelsChange, + onAttributeSelect }) => { const intl = useIntl(); @@ -298,6 +307,7 @@ export const ProductUpdatePage: React.FC = ({ {data.attributes.length > 0 && ( = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={fetchAttributeValues} + fetchMoreAttributeValues={fetchMoreAttributeValues} + onAttributeSelect={onAttributeSelect} /> )} diff --git a/src/products/components/ProductVariantAttributes/ProductVariantAttributes.tsx b/src/products/components/ProductVariantAttributes/ProductVariantAttributes.tsx index 70327c4e6..0ece21354 100644 --- a/src/products/components/ProductVariantAttributes/ProductVariantAttributes.tsx +++ b/src/products/components/ProductVariantAttributes/ProductVariantAttributes.tsx @@ -8,8 +8,8 @@ import SingleAutocompleteSelectField, { import Skeleton from "@saleor/components/Skeleton"; import { ProductErrorWithAttributesFragment } from "@saleor/fragments/types/ProductErrorWithAttributesFragment"; import { - ProductVariant_nonSelectionAttributes_attribute_values, - ProductVariant_selectionAttributes_attribute_values + ProductVariant_nonSelectionAttributes_attribute_values_edges, + ProductVariant_selectionAttributes_attribute_values_edges } from "@saleor/fragments/types/ProductVariant"; import { FormsetAtomicData, FormsetChange } from "@saleor/hooks/useFormset"; import { commonMessages } from "@saleor/intl"; @@ -19,8 +19,8 @@ import { useIntl } from "react-intl"; export interface VariantAttributeInputData { values: Array< - | ProductVariant_selectionAttributes_attribute_values - | ProductVariant_nonSelectionAttributes_attribute_values + | ProductVariant_selectionAttributes_attribute_values_edges + | ProductVariant_nonSelectionAttributes_attribute_values_edges >; } export type VariantAttributeInput = FormsetAtomicData< @@ -42,10 +42,10 @@ function getAttributeDisplayValue( ): string { const attribute = attributes.find(attr => attr.id === id); const attributeValue = attribute.data.values.find( - value => value.slug === slug + value => value.node.slug === slug ); if (!!attributeValue) { - return attributeValue.name; + return attributeValue.node.name; } return slug || ""; @@ -65,8 +65,8 @@ function getAttributeValueChoices( ): SingleAutocompleteChoiceType[] { const attribute = attributes.find(attr => attr.id === id); return attribute.data.values.map(attributeValue => ({ - label: attributeValue.name, - value: attributeValue.slug + label: attributeValue.node.name, + value: attributeValue.node.slug })); } diff --git a/src/products/components/ProductVariantCreatePage/ProductVariantCreatePage.tsx b/src/products/components/ProductVariantCreatePage/ProductVariantCreatePage.tsx index 974238604..7937f781a 100644 --- a/src/products/components/ProductVariantCreatePage/ProductVariantCreatePage.tsx +++ b/src/products/components/ProductVariantCreatePage/ProductVariantCreatePage.tsx @@ -173,6 +173,7 @@ const ProductVariantCreatePage: React.FC = ({ attribute.data.variantAttributeScope === VariantAttributeScope.NOT_VARIANT_SELECTION )} + attributeValues={[]} loading={disabled} disabled={disabled} errors={errors} @@ -182,6 +183,9 @@ const ProductVariantCreatePage: React.FC = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={() => undefined} + fetchMoreAttributeValues={undefined} + onAttributeSelect={() => undefined} /> = ({ attribute.data.variantAttributeScope === VariantAttributeScope.VARIANT_SELECTION )} + attributeValues={[]} loading={disabled} disabled={disabled} errors={errors} @@ -200,6 +205,9 @@ const ProductVariantCreatePage: React.FC = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={() => undefined} + fetchMoreAttributeValues={undefined} + onAttributeSelect={() => undefined} /> ({ - slug: attribute.slug, + values: selectedAttributes[0].values.edges.map(attribute => ({ + slug: attribute.node.slug, value: channels })) }; @@ -46,19 +46,21 @@ const stock: Stock = { value: selectedWarehouses.map( (_, warehouseIndex) => (warehouseIndex + 2) * 3 ), - values: selectedAttributes[0].values.map((attribute, attributeIndex) => ({ - slug: attribute.slug, - value: selectedWarehouses.map( - (_, warehouseIndex) => - selectedAttributes.length * 10 - attributeIndex - warehouseIndex * 3 - ) - })) + values: selectedAttributes[0].values.edges.map( + (attribute, attributeIndex) => ({ + slug: attribute.node.slug, + value: selectedWarehouses.map( + (_, warehouseIndex) => + selectedAttributes.length * 10 - attributeIndex - warehouseIndex * 3 + ) + }) + ) }; const dataAttributes = selectedAttributes.map(attribute => ({ id: attribute.id, - values: attribute.values - .map(value => value.slug) + values: attribute.values.edges + .map(value => value.node.slug) .filter((_, valueIndex) => valueIndex % 2 !== 1) })); diff --git a/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorSummary.tsx b/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorSummary.tsx index 7ad2751a4..0a04223b4 100644 --- a/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorSummary.tsx +++ b/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorSummary.tsx @@ -118,13 +118,13 @@ function getVariantName( return attributes.reduce( (acc, attribute) => [ ...acc, - attribute.values.find( + attribute.values.edges.find( value => - value.slug === + value.node.slug === variant.attributes.find( variantAttribute => variantAttribute.id === attribute.id ).values[0] - ).name + ).node.name ], [] ); diff --git a/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorValues.tsx b/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorValues.tsx index 1b9af2d2b..b7bc791ce 100644 --- a/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorValues.tsx +++ b/src/products/components/ProductVariantCreatorPage/ProductVariantCreatorValues.tsx @@ -71,7 +71,7 @@ const ProductVariantCreatorValues: React.FC = className={classes.valueContainer} data-test-id="value-container" > - {attribute.values.map(value => ( + {attribute.values.edges.map(({ node: value }) => ( onValueClick(attribute.id, value.slug)} time={100} diff --git a/src/products/components/ProductVariantCreatorPage/utils.ts b/src/products/components/ProductVariantCreatorPage/utils.ts index d14daf64b..5518b50c7 100644 --- a/src/products/components/ProductVariantCreatorPage/utils.ts +++ b/src/products/components/ProductVariantCreatorPage/utils.ts @@ -1,6 +1,6 @@ import { ProductDetails_product_productType_variantAttributes, - ProductDetails_product_productType_variantAttributes_values + ProductDetails_product_productType_variantAttributes_values_edges_node } from "@saleor/products/types/ProductDetails"; import { ProductVariantCreateFormData } from "./form"; @@ -8,33 +8,35 @@ import { ProductVariantCreateFormData } from "./form"; export function getPriceAttributeValues( data: ProductVariantCreateFormData, attributes: ProductDetails_product_productType_variantAttributes[] -): ProductDetails_product_productType_variantAttributes_values[] { +): ProductDetails_product_productType_variantAttributes_values_edges_node[] { return data.price.mode === "all" ? null : data.price.attribute ? attributes .find(attribute => attribute.id === data.price.attribute) - .values.filter(value => + .values.edges.filter(value => data.attributes .find(attribute => attribute.id === data.price.attribute) - .values.includes(value.slug) + .values.includes(value.node.slug) ) + .map(value => value.node) : []; } export function getStockAttributeValues( data: ProductVariantCreateFormData, attributes: ProductDetails_product_productType_variantAttributes[] -): ProductDetails_product_productType_variantAttributes_values[] { +): ProductDetails_product_productType_variantAttributes_values_edges_node[] { return data.stock.mode === "all" ? null : data.stock.attribute ? attributes .find(attribute => attribute.id === data.stock.attribute) - .values.filter(value => + .values.edges.filter(value => data.attributes .find(attribute => attribute.id === data.stock.attribute) - .values.includes(value.slug) + .values.includes(value.node.slug) ) + .map(value => value.node) : []; } diff --git a/src/products/components/ProductVariantPage/ProductVariantPage.tsx b/src/products/components/ProductVariantPage/ProductVariantPage.tsx index a7b9eca65..b7fdcc765 100644 --- a/src/products/components/ProductVariantPage/ProductVariantPage.tsx +++ b/src/products/components/ProductVariantPage/ProductVariantPage.tsx @@ -226,6 +226,7 @@ const ProductVariantPage: React.FC = ({ attribute.data.variantAttributeScope === VariantAttributeScope.NOT_VARIANT_SELECTION )} + attributeValues={[]} loading={loading} disabled={loading} errors={errors} @@ -235,6 +236,9 @@ const ProductVariantPage: React.FC = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={() => undefined} + fetchMoreAttributeValues={undefined} + onAttributeSelect={() => undefined} /> = ({ attribute.data.variantAttributeScope === VariantAttributeScope.VARIANT_SELECTION )} + attributeValues={[]} loading={loading} disabled={loading} errors={errors} @@ -255,6 +260,9 @@ const ProductVariantPage: React.FC = ({ onReferencesRemove={handlers.selectAttributeReference} onReferencesAddClick={onAssignReferencesClick} onReferencesReorder={handlers.reorderAttributeValue} + fetchAttributeValues={() => undefined} + fetchMoreAttributeValues={undefined} + onAttributeSelect={() => undefined} /> ({ slug: "attachment", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue", - file: { - __typename: "File", - contentType: "image/png", - url: "some-non-existing-url" - }, - id: "gdghdgdhkkdae", - name: "File First Value", - reference: null, - slug: "file-first-value", - richText: null - } - ] + values: { + __typename: "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" + }, + edges: [ + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: { + __typename: "File", + contentType: "image/png", + url: "some-non-existing-url" + }, + id: "gdghdgdhkkdae", + name: "File First Value", + reference: null, + slug: "file-first-value", + richText: null + } + } + ] + } }, values: [ { @@ -3052,26 +3174,44 @@ export const variant = (placeholderImage: string): ProductVariant => ({ slug: "Borders", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue", - file: null, - id: "ptav47282", - name: "portals", - reference: null, - slug: "portals", - richText: null + values: { + __typename: "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" }, - { - __typename: "AttributeValue", - file: null, - id: "ptav17253", - name: "Baht", - reference: null, - slug: "Baht", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: null, + id: "ptav47282", + name: "portals", + reference: null, + slug: "portals", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: null, + id: "ptav17253", + name: "Baht", + reference: null, + slug: "Baht", + richText: null + } + } + ] + } }, values: [ { @@ -3096,44 +3236,70 @@ export const variant = (placeholderImage: string): ProductVariant => ({ slug: "Legacy", valueRequired: true, unit: null, - values: [ - { - __typename: "AttributeValue", - file: null, - id: "ptav31282", - name: "payment", - reference: null, - slug: "payment", - richText: null + values: { + __typename: "AttributeValueCountableConnection", + pageInfo: { + endCursor: "WyI4IiwgIjMiXQ==", + hasNextPage: false, + hasPreviousPage: false, + startCursor: "WyIwIiwgIjQ5Il0=", + __typename: "PageInfo" }, - { - __typename: "AttributeValue", - file: null, - id: "ptav14907", - name: "Auto Loan Account", - reference: null, - slug: "Auto-Loan-Account", - richText: null - }, - { - __typename: "AttributeValue", - file: null, - id: "ptav27366", - name: "Garden", - reference: null, - slug: "Garden", - richText: null - }, - { - __typename: "AttributeValue", - file: null, - id: "ptav11873", - name: "override", - reference: null, - slug: "override", - richText: null - } - ] + edges: [ + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: null, + id: "ptav31282", + name: "payment", + reference: null, + slug: "payment", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: null, + id: "ptav14907", + name: "Auto Loan Account", + reference: null, + slug: "Auto-Loan-Account", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: null, + id: "ptav27366", + name: "Garden", + reference: null, + slug: "Garden", + richText: null + } + }, + { + __typename: "AttributeValueCountableEdge", + cursor: "", + node: { + __typename: "AttributeValue", + file: null, + id: "ptav11873", + name: "override", + reference: null, + slug: "override", + richText: null + } + } + ] + } }, values: [ { diff --git a/src/products/mutations.ts b/src/products/mutations.ts index e7848f6ea..4724b9d1c 100644 --- a/src/products/mutations.ts +++ b/src/products/mutations.ts @@ -8,7 +8,10 @@ import { stockErrorFragment } from "@saleor/fragments/errors"; import { + channelListingProductFragment, + channelListingProductVariantFragment, exportFileFragment, + fragmentProductMedia, fragmentVariant, productFragmentDetails } from "@saleor/fragments/products"; @@ -81,7 +84,7 @@ import { VariantUpdate, VariantUpdateVariables } from "./types/VariantUpdate"; export const productMediaCreateMutation = gql` ${productErrorFragment} - ${productFragmentDetails} + ${fragmentProductMedia} mutation ProductMediaCreate( $product: ID! $image: Upload @@ -100,7 +103,10 @@ export const productMediaCreateMutation = gql` ...ProductErrorFragment } product { - ...Product + id + media { + ...ProductMediaFragment + } } } } @@ -154,14 +160,21 @@ export const useProductMediaReorder = makeMutation< const productVariantSetDefault = gql` ${productErrorFragment} - ${productFragmentDetails} mutation ProductVariantSetDefault($productId: ID!, $variantId: ID!) { productVariantSetDefault(productId: $productId, variantId: $variantId) { errors { ...ProductErrorFragment } product { - ...Product + id + defaultVariant { + id + name + } + variants { + id + name + } } } } @@ -175,7 +188,14 @@ export const useProductVariantSetDefaultMutation = makeMutation< export const productUpdateMutation = gql` ${productErrorWithAttributesFragment} ${productFragmentDetails} - mutation ProductUpdate($id: ID!, $input: ProductInput!) { + mutation ProductUpdate( + $id: ID! + $input: ProductInput! + $firstValues: Int + $afterValues: String + $lastValues: Int + $beforeValues: String + ) { productUpdate(id: $id, input: $input) { errors { ...ProductErrorWithAttributesFragment @@ -205,6 +225,10 @@ export const simpleProductUpdateMutation = gql` $addStocks: [StockInput!]! $deleteStocks: [ID!]! $updateStocks: [StockInput!]! + $firstValues: Int + $afterValues: String + $lastValues: Int + $beforeValues: String ) { productUpdate(id: $id, input: $input) { errors { @@ -264,14 +288,13 @@ export const useSimpleProductUpdateMutation = makeMutation< export const productCreateMutation = gql` ${productErrorWithAttributesFragment} - ${productFragmentDetails} mutation ProductCreate($input: ProductCreateInput!) { productCreate(input: $input) { errors { ...ProductErrorWithAttributesFragment } product { - ...Product + id } } } @@ -311,7 +334,7 @@ export const variantUpdateMutation = gql` $sku: String $trackInventory: Boolean! $stocks: [StockInput!]! - $weight: WeightScalar + $weight: WeightScalar # $firstValues: Int # $afterValues: String # $lastValues: Int # $beforeValues: String ) { productVariantUpdate( id: $id @@ -370,7 +393,9 @@ export const useVariantUpdateMutation = makeMutation< export const variantCreateMutation = gql` ${fragmentVariant} ${productErrorWithAttributesFragment} - mutation VariantCreate($input: ProductVariantCreateInput!) { + mutation VariantCreate( + $input: ProductVariantCreateInput! # $firstValues: Int # $afterValues: String # $lastValues: Int # $beforeValues: String + ) { productVariantCreate(input: $input) { errors { ...ProductErrorWithAttributesFragment @@ -409,14 +434,17 @@ export const useProductMediaDeleteMutation = makeMutation< export const productMediaUpdateMutation = gql` ${productErrorFragment} - ${productFragmentDetails} + ${fragmentProductMedia} mutation ProductMediaUpdate($id: ID!, $alt: String!) { productMediaUpdate(id: $id, input: { alt: $alt }) { errors { ...ProductErrorFragment } product { - ...Product + id + media { + ...ProductMediaFragment + } } } } @@ -427,7 +455,7 @@ export const useProductMediaUpdateMutation = makeMutation< >(productMediaUpdateMutation); export const variantMediaAssignMutation = gql` - ${fragmentVariant} + ${fragmentProductMedia} ${productErrorFragment} mutation VariantMediaAssign($variantId: ID!, $mediaId: ID!) { variantMediaAssign(variantId: $variantId, mediaId: $mediaId) { @@ -435,7 +463,24 @@ export const variantMediaAssignMutation = gql` ...ProductErrorFragment } productVariant { - ...ProductVariant + id + media { + ...ProductMediaFragment + } + product { + id + media { + ...ProductMediaFragment + } + variants { + id + name + sku + media { + ...ProductMediaFragment + } + } + } } } } @@ -446,7 +491,7 @@ export const useVariantMediaAssignMutation = makeMutation< >(variantMediaAssignMutation); export const variantMediaUnassignMutation = gql` - ${fragmentVariant} + ${fragmentProductMedia} ${productErrorFragment} mutation VariantMediaUnassign($variantId: ID!, $mediaId: ID!) { variantMediaUnassign(variantId: $variantId, mediaId: $mediaId) { @@ -454,7 +499,24 @@ export const variantMediaUnassignMutation = gql` ...ProductErrorFragment } productVariant { - ...ProductVariant + id + media { + ...ProductMediaFragment + } + product { + id + media { + ...ProductMediaFragment + } + variants { + id + name + sku + media { + ...ProductMediaFragment + } + } + } } } } @@ -532,7 +594,8 @@ export const useProductExport = makeMutation< >(productExportMutation); export const ProductChannelListingUpdateMutation = gql` - ${productFragmentDetails} + ${channelListingProductFragment} + ${channelListingProductVariantFragment} ${productChannelListingErrorFragment} mutation ProductChannelListingUpdate( $id: ID! @@ -540,7 +603,16 @@ export const ProductChannelListingUpdateMutation = gql` ) { productChannelListingUpdate(id: $id, input: $input) { product { - ...Product + id + channelListings { + ...ChannelListingProductFragment + } + variants { + id + channelListings { + ...ChannelListingProductVariantFragment + } + } } errors { ...ProductChannelListingErrorFragment @@ -551,14 +623,16 @@ export const ProductChannelListingUpdateMutation = gql` const productVariantReorder = gql` ${productErrorFragment} - ${productFragmentDetails} mutation ProductVariantReorder($move: ReorderInput!, $productId: ID!) { productVariantReorder(moves: [$move], productId: $productId) { errors { ...ProductErrorFragment } product { - ...Product + id + variants { + id + } } } } @@ -573,7 +647,8 @@ export const useProductChannelListingUpdate = makeMutation< >(ProductChannelListingUpdateMutation); export const ProductVariantChannelListingUpdateMutation = gql` - ${fragmentVariant} + ${channelListingProductVariantFragment} + ${channelListingProductFragment} ${productChannelListingErrorFragment} mutation ProductVariantChannelListingUpdate( $id: ID! @@ -581,7 +656,15 @@ export const ProductVariantChannelListingUpdateMutation = gql` ) { productVariantChannelListingUpdate(id: $id, input: $input) { variant { - ...ProductVariant + id + channelListings { + ...ChannelListingProductVariantFragment + } + product { + channelListings { + ...ChannelListingProductFragment + } + } } errors { ...ProductChannelListingErrorFragment diff --git a/src/products/queries.ts b/src/products/queries.ts index 793cd2a32..7e135e3e2 100644 --- a/src/products/queries.ts +++ b/src/products/queries.ts @@ -1,4 +1,7 @@ -import { attributeValueFragment } from "@saleor/fragments/attributes"; +import { + attributeValueFragment, + attributeValueListFragment +} from "@saleor/fragments/attributes"; import { pageInfoFragment } from "@saleor/fragments/pageInfo"; import { fragmentVariant, @@ -24,7 +27,10 @@ import { GridAttributes, GridAttributesVariables } from "./types/GridAttributes"; -import { InitialProductFilterAttributes } from "./types/InitialProductFilterAttributes"; +import { + InitialProductFilterAttributes, + InitialProductFilterAttributesVariables +} from "./types/InitialProductFilterAttributes"; import { InitialProductFilterCategories, InitialProductFilterCategoriesVariables @@ -54,7 +60,13 @@ import { } from "./types/ProductVariantDetails"; const initialProductFilterAttributesQuery = gql` - query InitialProductFilterAttributes { + ${pageInfoFragment} + query InitialProductFilterAttributes( + $firstValues: Int + $afterValues: String + $lastValues: Int + $beforeValues: String + ) { attributes( first: 100 filter: { filterableInDashboard: true, type: PRODUCT_TYPE } @@ -64,11 +76,24 @@ const initialProductFilterAttributesQuery = gql` id name slug - # values { - # id - # name - # slug - # } + values( + first: $firstValues + after: $afterValues + last: $lastValues + before: $beforeValues + ) { + pageInfo { + ...PageInfoFragment + } + edges { + cursor + node { + id + name + slug + } + } + } } } } @@ -76,7 +101,7 @@ const initialProductFilterAttributesQuery = gql` `; export const useInitialProductFilterAttributesQuery = makeQuery< InitialProductFilterAttributes, - null + InitialProductFilterAttributesVariables >(initialProductFilterAttributesQuery); const initialProductFilterCategoriesQuery = gql` @@ -192,7 +217,14 @@ export const useProductCountQuery = makeQuery< const productDetailsQuery = gql` ${productFragmentDetails} ${taxTypeFragment} - query ProductDetails($id: ID!, $channel: String) { + query ProductDetails( + $id: ID! + $channel: String + $firstValues: Int + $afterValues: String + $lastValues: Int + $beforeValues: String + ) { product(id: $id, channel: $channel) { ...Product } @@ -208,8 +240,14 @@ export const useProductDetails = makeQuery< const productTypeQuery = gql` ${taxTypeFragment} - ${attributeValueFragment} - query ProductType($id: ID!) { + ${attributeValueListFragment} + query ProductType( + $id: ID! + $firstValues: Int + $afterValues: String + $lastValues: Int + $beforeValues: String + ) { productType(id: $id) { id name @@ -222,9 +260,14 @@ const productTypeQuery = gql` name valueRequired unit - # values { - # ...AttributeValueFragment - # } + values( + first: $firstValues + after: $afterValues + last: $lastValues + before: $beforeValues + ) { + ...AttributeValueListFragment + } } taxType { ...TaxTypeFragment @@ -238,7 +281,9 @@ export const useProductTypeQuery = makeQuery( const productVariantQuery = gql` ${fragmentVariant} - query ProductVariantDetails($id: ID!) { + query ProductVariantDetails( + $id: ID! # $firstValues: Int # $afterValues: String # $lastValues: Int # $beforeValues: String + ) { productVariant(id: $id) { ...ProductVariant } @@ -251,7 +296,9 @@ export const useProductVariantQuery = makeQuery< const productVariantCreateQuery = gql` ${variantAttributeFragment} - query ProductVariantCreateData($id: ID!) { + query ProductVariantCreateData( + $id: ID! # $firstValues: Int # $afterValues: String # $lastValues: Int # $beforeValues: String + ) { product(id: $id) { id media { @@ -370,7 +417,13 @@ export const useAvailableInGridAttributesQuery = makeQuery< const createMultipleVariantsData = gql` ${productVariantAttributesFragment} ${warehouseFragment} - query CreateMultipleVariantsData($id: ID!) { + query CreateMultipleVariantsData( + $id: ID! + $firstValues: Int + $afterValues: String + $lastValues: Int + $beforeValues: String + ) { product(id: $id) { ...ProductVariantAttributesFragment } diff --git a/src/products/types/CreateMultipleVariantsData.ts b/src/products/types/CreateMultipleVariantsData.ts index aa904b784..64454e7b5 100644 --- a/src/products/types/CreateMultipleVariantsData.ts +++ b/src/products/types/CreateMultipleVariantsData.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum } // GraphQL query operation: CreateMultipleVariantsData // ==================================================== -export interface CreateMultipleVariantsData_product_attributes_attribute_values_file { +export interface CreateMultipleVariantsData_product_attributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface CreateMultipleVariantsData_product_attributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface CreateMultipleVariantsData_product_attributes_attribute_values { +export interface CreateMultipleVariantsData_product_attributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: CreateMultipleVariantsData_product_attributes_attribute_values_file | null; + file: CreateMultipleVariantsData_product_attributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface CreateMultipleVariantsData_product_attributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: CreateMultipleVariantsData_product_attributes_attribute_values_edges_node; +} + +export interface CreateMultipleVariantsData_product_attributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: CreateMultipleVariantsData_product_attributes_attribute_values_pageInfo; + edges: CreateMultipleVariantsData_product_attributes_attribute_values_edges[]; +} + export interface CreateMultipleVariantsData_product_attributes_attribute { __typename: "Attribute"; id: string; @@ -34,7 +54,7 @@ export interface CreateMultipleVariantsData_product_attributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (CreateMultipleVariantsData_product_attributes_attribute_values | null)[] | null; + values: CreateMultipleVariantsData_product_attributes_attribute_values | null; } export interface CreateMultipleVariantsData_product_attributes_values_file { @@ -59,27 +79,47 @@ export interface CreateMultipleVariantsData_product_attributes { values: (CreateMultipleVariantsData_product_attributes_values | null)[]; } -export interface CreateMultipleVariantsData_product_productType_variantAttributes_values_file { +export interface CreateMultipleVariantsData_product_productType_variantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface CreateMultipleVariantsData_product_productType_variantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface CreateMultipleVariantsData_product_productType_variantAttributes_values { +export interface CreateMultipleVariantsData_product_productType_variantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: CreateMultipleVariantsData_product_productType_variantAttributes_values_file | null; + file: CreateMultipleVariantsData_product_productType_variantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface CreateMultipleVariantsData_product_productType_variantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: CreateMultipleVariantsData_product_productType_variantAttributes_values_edges_node; +} + +export interface CreateMultipleVariantsData_product_productType_variantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: CreateMultipleVariantsData_product_productType_variantAttributes_values_pageInfo; + edges: CreateMultipleVariantsData_product_productType_variantAttributes_values_edges[]; +} + export interface CreateMultipleVariantsData_product_productType_variantAttributes { __typename: "Attribute"; id: string; name: string | null; - values: (CreateMultipleVariantsData_product_productType_variantAttributes_values | null)[] | null; + values: CreateMultipleVariantsData_product_productType_variantAttributes_values | null; } export interface CreateMultipleVariantsData_product_productType { @@ -165,4 +205,8 @@ export interface CreateMultipleVariantsData { export interface CreateMultipleVariantsDataVariables { id: string; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/InitialProductFilterAttributes.ts b/src/products/types/InitialProductFilterAttributes.ts index 310483d1a..e10d4077a 100644 --- a/src/products/types/InitialProductFilterAttributes.ts +++ b/src/products/types/InitialProductFilterAttributes.ts @@ -7,19 +7,39 @@ // GraphQL query operation: InitialProductFilterAttributes // ==================================================== -export interface InitialProductFilterAttributes_attributes_edges_node_values { +export interface InitialProductFilterAttributes_attributes_edges_node_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface InitialProductFilterAttributes_attributes_edges_node_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; } +export interface InitialProductFilterAttributes_attributes_edges_node_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: InitialProductFilterAttributes_attributes_edges_node_values_edges_node; +} + +export interface InitialProductFilterAttributes_attributes_edges_node_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: InitialProductFilterAttributes_attributes_edges_node_values_pageInfo; + edges: InitialProductFilterAttributes_attributes_edges_node_values_edges[]; +} + export interface InitialProductFilterAttributes_attributes_edges_node { __typename: "Attribute"; id: string; name: string | null; slug: string | null; - values: (InitialProductFilterAttributes_attributes_edges_node_values | null)[] | null; + values: InitialProductFilterAttributes_attributes_edges_node_values | null; } export interface InitialProductFilterAttributes_attributes_edges { @@ -35,3 +55,10 @@ export interface InitialProductFilterAttributes_attributes { export interface InitialProductFilterAttributes { attributes: InitialProductFilterAttributes_attributes | null; } + +export interface InitialProductFilterAttributesVariables { + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; +} diff --git a/src/products/types/ProductChannelListingUpdate.ts b/src/products/types/ProductChannelListingUpdate.ts index dfc5f991f..fab3ae318 100644 --- a/src/products/types/ProductChannelListingUpdate.ts +++ b/src/products/types/ProductChannelListingUpdate.ts @@ -3,100 +3,12 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductChannelListingUpdateInput, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum, ProductErrorCode } from "./../../types/globalTypes"; +import { ProductChannelListingUpdateInput, ProductErrorCode } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductChannelListingUpdate // ==================================================== -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_attribute { - __typename: "Attribute"; - id: string; - slug: string | null; - name: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_attribute_values | null)[] | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_attributes { - __typename: "SelectedAttribute"; - attribute: ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_attribute; - values: (ProductChannelListingUpdate_productChannelListingUpdate_product_attributes_values | null)[]; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_productType_variantAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_productType_variantAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductChannelListingUpdate_productChannelListingUpdate_product_productType_variantAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_productType_variantAttributes { - __typename: "Attribute"; - id: string; - name: string | null; - values: (ProductChannelListingUpdate_productChannelListingUpdate_product_productType_variantAttributes_values | null)[] | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_productType_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_productType { - __typename: "ProductType"; - id: string; - variantAttributes: (ProductChannelListingUpdate_productChannelListingUpdate_product_productType_variantAttributes | null)[] | null; - name: string; - hasVariants: boolean; - taxType: ProductChannelListingUpdate_productChannelListingUpdate_product_productType_taxType | null; -} - export interface ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings_channel { __typename: "Channel"; id: string; @@ -139,71 +51,13 @@ export interface ProductChannelListingUpdate_productChannelListingUpdate_product export interface ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings { __typename: "ProductChannelListing"; - channel: ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings_channel; - pricing: ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings_pricing | null; isPublished: boolean; publicationDate: any | null; isAvailableForPurchase: boolean | null; availableForPurchase: any | null; visibleInListings: boolean; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_category { - __typename: "Category"; - id: string; - name: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_collections { - __typename: "Collection"; - id: string; - name: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_media { - __typename: "ProductMedia"; - id: string; - alt: string; - sortOrder: number | null; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_variants_media { - __typename: "ProductMedia"; - url: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_variants_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_variants_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductChannelListingUpdate_productChannelListingUpdate_product_variants_stocks_warehouse; + channel: ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings_channel; + pricing: ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings_pricing | null; } export interface ProductChannelListingUpdate_productChannelListingUpdate_product_variants_channelListings_channel { @@ -235,50 +89,14 @@ export interface ProductChannelListingUpdate_productChannelListingUpdate_product export interface ProductChannelListingUpdate_productChannelListingUpdate_product_variants { __typename: "ProductVariant"; id: string; - sku: string; - name: string; - margin: number | null; - media: ProductChannelListingUpdate_productChannelListingUpdate_product_variants_media[] | null; - stocks: (ProductChannelListingUpdate_productChannelListingUpdate_product_variants_stocks | null)[] | null; - trackInventory: boolean; channelListings: ProductChannelListingUpdate_productChannelListingUpdate_product_variants_channelListings[] | null; } -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - -export interface ProductChannelListingUpdate_productChannelListingUpdate_product_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - export interface ProductChannelListingUpdate_productChannelListingUpdate_product { __typename: "Product"; id: string; - attributes: ProductChannelListingUpdate_productChannelListingUpdate_product_attributes[]; - productType: ProductChannelListingUpdate_productChannelListingUpdate_product_productType; channelListings: ProductChannelListingUpdate_productChannelListingUpdate_product_channelListings[] | null; - metadata: (ProductChannelListingUpdate_productChannelListingUpdate_product_metadata | null)[]; - privateMetadata: (ProductChannelListingUpdate_productChannelListingUpdate_product_privateMetadata | null)[]; - name: string; - slug: string; - description: any | null; - seoTitle: string | null; - seoDescription: string | null; - rating: number | null; - defaultVariant: ProductChannelListingUpdate_productChannelListingUpdate_product_defaultVariant | null; - category: ProductChannelListingUpdate_productChannelListingUpdate_product_category | null; - collections: (ProductChannelListingUpdate_productChannelListingUpdate_product_collections | null)[] | null; - chargeTaxes: boolean; - media: ProductChannelListingUpdate_productChannelListingUpdate_product_media[] | null; - isAvailable: boolean | null; variants: (ProductChannelListingUpdate_productChannelListingUpdate_product_variants | null)[] | null; - weight: ProductChannelListingUpdate_productChannelListingUpdate_product_weight | null; - taxType: ProductChannelListingUpdate_productChannelListingUpdate_product_taxType | null; } export interface ProductChannelListingUpdate_productChannelListingUpdate_errors { diff --git a/src/products/types/ProductCreate.ts b/src/products/types/ProductCreate.ts index ffe492d8c..0a2e4d71b 100644 --- a/src/products/types/ProductCreate.ts +++ b/src/products/types/ProductCreate.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductCreateInput, ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ProductCreateInput, ProductErrorCode } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductCreate @@ -16,276 +16,9 @@ export interface ProductCreate_productCreate_errors { attributes: string[] | null; } -export interface ProductCreate_productCreate_product_attributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductCreate_productCreate_product_attributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductCreate_productCreate_product_attributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductCreate_productCreate_product_attributes_attribute { - __typename: "Attribute"; - id: string; - slug: string | null; - name: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductCreate_productCreate_product_attributes_attribute_values | null)[] | null; -} - -export interface ProductCreate_productCreate_product_attributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductCreate_productCreate_product_attributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductCreate_productCreate_product_attributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductCreate_productCreate_product_attributes { - __typename: "SelectedAttribute"; - attribute: ProductCreate_productCreate_product_attributes_attribute; - values: (ProductCreate_productCreate_product_attributes_values | null)[]; -} - -export interface ProductCreate_productCreate_product_productType_variantAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductCreate_productCreate_product_productType_variantAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductCreate_productCreate_product_productType_variantAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductCreate_productCreate_product_productType_variantAttributes { - __typename: "Attribute"; - id: string; - name: string | null; - values: (ProductCreate_productCreate_product_productType_variantAttributes_values | null)[] | null; -} - -export interface ProductCreate_productCreate_product_productType_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - -export interface ProductCreate_productCreate_product_productType { - __typename: "ProductType"; - id: string; - variantAttributes: (ProductCreate_productCreate_product_productType_variantAttributes | null)[] | null; - name: string; - hasVariants: boolean; - taxType: ProductCreate_productCreate_product_productType_taxType | null; -} - -export interface ProductCreate_productCreate_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductCreate_productCreate_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductCreate_productCreate_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: ProductCreate_productCreate_product_channelListings_pricing_priceRange_start_net; -} - -export interface ProductCreate_productCreate_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductCreate_productCreate_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: ProductCreate_productCreate_product_channelListings_pricing_priceRange_stop_net; -} - -export interface ProductCreate_productCreate_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: ProductCreate_productCreate_product_channelListings_pricing_priceRange_start | null; - stop: ProductCreate_productCreate_product_channelListings_pricing_priceRange_stop | null; -} - -export interface ProductCreate_productCreate_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: ProductCreate_productCreate_product_channelListings_pricing_priceRange | null; -} - -export interface ProductCreate_productCreate_product_channelListings { - __typename: "ProductChannelListing"; - channel: ProductCreate_productCreate_product_channelListings_channel; - pricing: ProductCreate_productCreate_product_channelListings_pricing | null; - isPublished: boolean; - publicationDate: any | null; - isAvailableForPurchase: boolean | null; - availableForPurchase: any | null; - visibleInListings: boolean; -} - -export interface ProductCreate_productCreate_product_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductCreate_productCreate_product_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductCreate_productCreate_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - -export interface ProductCreate_productCreate_product_category { - __typename: "Category"; - id: string; - name: string; -} - -export interface ProductCreate_productCreate_product_collections { - __typename: "Collection"; - id: string; - name: string; -} - -export interface ProductCreate_productCreate_product_media { - __typename: "ProductMedia"; - id: string; - alt: string; - sortOrder: number | null; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductCreate_productCreate_product_variants_media { - __typename: "ProductMedia"; - url: string; -} - -export interface ProductCreate_productCreate_product_variants_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductCreate_productCreate_product_variants_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductCreate_productCreate_product_variants_stocks_warehouse; -} - -export interface ProductCreate_productCreate_product_variants_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductCreate_productCreate_product_variants_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductCreate_productCreate_product_variants_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductCreate_productCreate_product_variants_channelListings { - __typename: "ProductVariantChannelListing"; - channel: ProductCreate_productCreate_product_variants_channelListings_channel; - price: ProductCreate_productCreate_product_variants_channelListings_price | null; - costPrice: ProductCreate_productCreate_product_variants_channelListings_costPrice | null; -} - -export interface ProductCreate_productCreate_product_variants { - __typename: "ProductVariant"; - id: string; - sku: string; - name: string; - margin: number | null; - media: ProductCreate_productCreate_product_variants_media[] | null; - stocks: (ProductCreate_productCreate_product_variants_stocks | null)[] | null; - trackInventory: boolean; - channelListings: ProductCreate_productCreate_product_variants_channelListings[] | null; -} - -export interface ProductCreate_productCreate_product_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - -export interface ProductCreate_productCreate_product_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - export interface ProductCreate_productCreate_product { __typename: "Product"; id: string; - attributes: ProductCreate_productCreate_product_attributes[]; - productType: ProductCreate_productCreate_product_productType; - channelListings: ProductCreate_productCreate_product_channelListings[] | null; - metadata: (ProductCreate_productCreate_product_metadata | null)[]; - privateMetadata: (ProductCreate_productCreate_product_privateMetadata | null)[]; - name: string; - slug: string; - description: any | null; - seoTitle: string | null; - seoDescription: string | null; - rating: number | null; - defaultVariant: ProductCreate_productCreate_product_defaultVariant | null; - category: ProductCreate_productCreate_product_category | null; - collections: (ProductCreate_productCreate_product_collections | null)[] | null; - chargeTaxes: boolean; - media: ProductCreate_productCreate_product_media[] | null; - isAvailable: boolean | null; - variants: (ProductCreate_productCreate_product_variants | null)[] | null; - weight: ProductCreate_productCreate_product_weight | null; - taxType: ProductCreate_productCreate_product_taxType | null; } export interface ProductCreate_productCreate { diff --git a/src/products/types/ProductDetails.ts b/src/products/types/ProductDetails.ts index 57d2cdd5b..50f9cd58f 100644 --- a/src/products/types/ProductDetails.ts +++ b/src/products/types/ProductDetails.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, // GraphQL query operation: ProductDetails // ==================================================== -export interface ProductDetails_product_attributes_attribute_values_file { +export interface ProductDetails_product_attributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductDetails_product_attributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductDetails_product_attributes_attribute_values { +export interface ProductDetails_product_attributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductDetails_product_attributes_attribute_values_file | null; + file: ProductDetails_product_attributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductDetails_product_attributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductDetails_product_attributes_attribute_values_edges_node; +} + +export interface ProductDetails_product_attributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductDetails_product_attributes_attribute_values_pageInfo; + edges: ProductDetails_product_attributes_attribute_values_edges[]; +} + export interface ProductDetails_product_attributes_attribute { __typename: "Attribute"; id: string; @@ -34,7 +54,7 @@ export interface ProductDetails_product_attributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductDetails_product_attributes_attribute_values | null)[] | null; + values: ProductDetails_product_attributes_attribute_values | null; } export interface ProductDetails_product_attributes_values_file { @@ -59,27 +79,47 @@ export interface ProductDetails_product_attributes { values: (ProductDetails_product_attributes_values | null)[]; } -export interface ProductDetails_product_productType_variantAttributes_values_file { +export interface ProductDetails_product_productType_variantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductDetails_product_productType_variantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductDetails_product_productType_variantAttributes_values { +export interface ProductDetails_product_productType_variantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductDetails_product_productType_variantAttributes_values_file | null; + file: ProductDetails_product_productType_variantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductDetails_product_productType_variantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductDetails_product_productType_variantAttributes_values_edges_node; +} + +export interface ProductDetails_product_productType_variantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductDetails_product_productType_variantAttributes_values_pageInfo; + edges: ProductDetails_product_productType_variantAttributes_values_edges[]; +} + export interface ProductDetails_product_productType_variantAttributes { __typename: "Attribute"; id: string; name: string | null; - values: (ProductDetails_product_productType_variantAttributes_values | null)[] | null; + values: ProductDetails_product_productType_variantAttributes_values | null; } export interface ProductDetails_product_productType_taxType { @@ -295,4 +335,8 @@ export interface ProductDetails { export interface ProductDetailsVariables { id: string; channel?: string | null; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/ProductMediaCreate.ts b/src/products/types/ProductMediaCreate.ts index 7469eeaa6..5741d572a 100644 --- a/src/products/types/ProductMediaCreate.ts +++ b/src/products/types/ProductMediaCreate.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ProductErrorCode, ProductMediaType } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductMediaCreate @@ -15,174 +15,6 @@ export interface ProductMediaCreate_productMediaCreate_errors { field: string | null; } -export interface ProductMediaCreate_productMediaCreate_product_attributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_attributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductMediaCreate_productMediaCreate_product_attributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_attributes_attribute { - __typename: "Attribute"; - id: string; - slug: string | null; - name: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductMediaCreate_productMediaCreate_product_attributes_attribute_values | null)[] | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_attributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_attributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductMediaCreate_productMediaCreate_product_attributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_attributes { - __typename: "SelectedAttribute"; - attribute: ProductMediaCreate_productMediaCreate_product_attributes_attribute; - values: (ProductMediaCreate_productMediaCreate_product_attributes_values | null)[]; -} - -export interface ProductMediaCreate_productMediaCreate_product_productType_variantAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_productType_variantAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductMediaCreate_productMediaCreate_product_productType_variantAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_productType_variantAttributes { - __typename: "Attribute"; - id: string; - name: string | null; - values: (ProductMediaCreate_productMediaCreate_product_productType_variantAttributes_values | null)[] | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_productType_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_productType { - __typename: "ProductType"; - id: string; - variantAttributes: (ProductMediaCreate_productMediaCreate_product_productType_variantAttributes | null)[] | null; - name: string; - hasVariants: boolean; - taxType: ProductMediaCreate_productMediaCreate_product_productType_taxType | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_start_net; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_stop_net; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_start | null; - stop: ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange_stop | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: ProductMediaCreate_productMediaCreate_product_channelListings_pricing_priceRange | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_channelListings { - __typename: "ProductChannelListing"; - channel: ProductMediaCreate_productMediaCreate_product_channelListings_channel; - pricing: ProductMediaCreate_productMediaCreate_product_channelListings_pricing | null; - isPublished: boolean; - publicationDate: any | null; - isAvailableForPurchase: boolean | null; - availableForPurchase: any | null; - visibleInListings: boolean; -} - -export interface ProductMediaCreate_productMediaCreate_product_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_category { - __typename: "Category"; - id: string; - name: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_collections { - __typename: "Collection"; - id: string; - name: string; -} - export interface ProductMediaCreate_productMediaCreate_product_media { __typename: "ProductMedia"; id: string; @@ -193,98 +25,10 @@ export interface ProductMediaCreate_productMediaCreate_product_media { oembedData: any; } -export interface ProductMediaCreate_productMediaCreate_product_variants_media { - __typename: "ProductMedia"; - url: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductMediaCreate_productMediaCreate_product_variants_stocks_warehouse; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants_channelListings { - __typename: "ProductVariantChannelListing"; - channel: ProductMediaCreate_productMediaCreate_product_variants_channelListings_channel; - price: ProductMediaCreate_productMediaCreate_product_variants_channelListings_price | null; - costPrice: ProductMediaCreate_productMediaCreate_product_variants_channelListings_costPrice | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_variants { - __typename: "ProductVariant"; - id: string; - sku: string; - name: string; - margin: number | null; - media: ProductMediaCreate_productMediaCreate_product_variants_media[] | null; - stocks: (ProductMediaCreate_productMediaCreate_product_variants_stocks | null)[] | null; - trackInventory: boolean; - channelListings: ProductMediaCreate_productMediaCreate_product_variants_channelListings[] | null; -} - -export interface ProductMediaCreate_productMediaCreate_product_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - -export interface ProductMediaCreate_productMediaCreate_product_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - export interface ProductMediaCreate_productMediaCreate_product { __typename: "Product"; id: string; - attributes: ProductMediaCreate_productMediaCreate_product_attributes[]; - productType: ProductMediaCreate_productMediaCreate_product_productType; - channelListings: ProductMediaCreate_productMediaCreate_product_channelListings[] | null; - metadata: (ProductMediaCreate_productMediaCreate_product_metadata | null)[]; - privateMetadata: (ProductMediaCreate_productMediaCreate_product_privateMetadata | null)[]; - name: string; - slug: string; - description: any | null; - seoTitle: string | null; - seoDescription: string | null; - rating: number | null; - defaultVariant: ProductMediaCreate_productMediaCreate_product_defaultVariant | null; - category: ProductMediaCreate_productMediaCreate_product_category | null; - collections: (ProductMediaCreate_productMediaCreate_product_collections | null)[] | null; - chargeTaxes: boolean; media: ProductMediaCreate_productMediaCreate_product_media[] | null; - isAvailable: boolean | null; - variants: (ProductMediaCreate_productMediaCreate_product_variants | null)[] | null; - weight: ProductMediaCreate_productMediaCreate_product_weight | null; - taxType: ProductMediaCreate_productMediaCreate_product_taxType | null; } export interface ProductMediaCreate_productMediaCreate { diff --git a/src/products/types/ProductMediaUpdate.ts b/src/products/types/ProductMediaUpdate.ts index 5ab542184..2c5a1614f 100644 --- a/src/products/types/ProductMediaUpdate.ts +++ b/src/products/types/ProductMediaUpdate.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ProductErrorCode, ProductMediaType } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductMediaUpdate @@ -15,174 +15,6 @@ export interface ProductMediaUpdate_productMediaUpdate_errors { field: string | null; } -export interface ProductMediaUpdate_productMediaUpdate_product_attributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_attributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductMediaUpdate_productMediaUpdate_product_attributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_attributes_attribute { - __typename: "Attribute"; - id: string; - slug: string | null; - name: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductMediaUpdate_productMediaUpdate_product_attributes_attribute_values | null)[] | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_attributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_attributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductMediaUpdate_productMediaUpdate_product_attributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_attributes { - __typename: "SelectedAttribute"; - attribute: ProductMediaUpdate_productMediaUpdate_product_attributes_attribute; - values: (ProductMediaUpdate_productMediaUpdate_product_attributes_values | null)[]; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_productType_variantAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_productType_variantAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductMediaUpdate_productMediaUpdate_product_productType_variantAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_productType_variantAttributes { - __typename: "Attribute"; - id: string; - name: string | null; - values: (ProductMediaUpdate_productMediaUpdate_product_productType_variantAttributes_values | null)[] | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_productType_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_productType { - __typename: "ProductType"; - id: string; - variantAttributes: (ProductMediaUpdate_productMediaUpdate_product_productType_variantAttributes | null)[] | null; - name: string; - hasVariants: boolean; - taxType: ProductMediaUpdate_productMediaUpdate_product_productType_taxType | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_start_net; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_stop_net; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_start | null; - stop: ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange_stop | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing_priceRange | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_channelListings { - __typename: "ProductChannelListing"; - channel: ProductMediaUpdate_productMediaUpdate_product_channelListings_channel; - pricing: ProductMediaUpdate_productMediaUpdate_product_channelListings_pricing | null; - isPublished: boolean; - publicationDate: any | null; - isAvailableForPurchase: boolean | null; - availableForPurchase: any | null; - visibleInListings: boolean; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_category { - __typename: "Category"; - id: string; - name: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_collections { - __typename: "Collection"; - id: string; - name: string; -} - export interface ProductMediaUpdate_productMediaUpdate_product_media { __typename: "ProductMedia"; id: string; @@ -193,98 +25,10 @@ export interface ProductMediaUpdate_productMediaUpdate_product_media { oembedData: any; } -export interface ProductMediaUpdate_productMediaUpdate_product_variants_media { - __typename: "ProductMedia"; - url: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductMediaUpdate_productMediaUpdate_product_variants_stocks_warehouse; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants_channelListings { - __typename: "ProductVariantChannelListing"; - channel: ProductMediaUpdate_productMediaUpdate_product_variants_channelListings_channel; - price: ProductMediaUpdate_productMediaUpdate_product_variants_channelListings_price | null; - costPrice: ProductMediaUpdate_productMediaUpdate_product_variants_channelListings_costPrice | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_variants { - __typename: "ProductVariant"; - id: string; - sku: string; - name: string; - margin: number | null; - media: ProductMediaUpdate_productMediaUpdate_product_variants_media[] | null; - stocks: (ProductMediaUpdate_productMediaUpdate_product_variants_stocks | null)[] | null; - trackInventory: boolean; - channelListings: ProductMediaUpdate_productMediaUpdate_product_variants_channelListings[] | null; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - -export interface ProductMediaUpdate_productMediaUpdate_product_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - export interface ProductMediaUpdate_productMediaUpdate_product { __typename: "Product"; id: string; - attributes: ProductMediaUpdate_productMediaUpdate_product_attributes[]; - productType: ProductMediaUpdate_productMediaUpdate_product_productType; - channelListings: ProductMediaUpdate_productMediaUpdate_product_channelListings[] | null; - metadata: (ProductMediaUpdate_productMediaUpdate_product_metadata | null)[]; - privateMetadata: (ProductMediaUpdate_productMediaUpdate_product_privateMetadata | null)[]; - name: string; - slug: string; - description: any | null; - seoTitle: string | null; - seoDescription: string | null; - rating: number | null; - defaultVariant: ProductMediaUpdate_productMediaUpdate_product_defaultVariant | null; - category: ProductMediaUpdate_productMediaUpdate_product_category | null; - collections: (ProductMediaUpdate_productMediaUpdate_product_collections | null)[] | null; - chargeTaxes: boolean; media: ProductMediaUpdate_productMediaUpdate_product_media[] | null; - isAvailable: boolean | null; - variants: (ProductMediaUpdate_productMediaUpdate_product_variants | null)[] | null; - weight: ProductMediaUpdate_productMediaUpdate_product_weight | null; - taxType: ProductMediaUpdate_productMediaUpdate_product_taxType | null; } export interface ProductMediaUpdate_productMediaUpdate { diff --git a/src/products/types/ProductType.ts b/src/products/types/ProductType.ts index 4f65a8c14..62ed0baef 100644 --- a/src/products/types/ProductType.ts +++ b/src/products/types/ProductType.ts @@ -9,22 +9,42 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum } // GraphQL query operation: ProductType // ==================================================== -export interface ProductType_productType_productAttributes_values_file { +export interface ProductType_productType_productAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductType_productType_productAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductType_productType_productAttributes_values { +export interface ProductType_productType_productAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductType_productType_productAttributes_values_file | null; + file: ProductType_productType_productAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductType_productType_productAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductType_productType_productAttributes_values_edges_node; +} + +export interface ProductType_productType_productAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductType_productType_productAttributes_values_pageInfo; + edges: ProductType_productType_productAttributes_values_edges[]; +} + export interface ProductType_productType_productAttributes { __typename: "Attribute"; id: string; @@ -34,7 +54,7 @@ export interface ProductType_productType_productAttributes { name: string | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductType_productType_productAttributes_values | null)[] | null; + values: ProductType_productType_productAttributes_values | null; } export interface ProductType_productType_taxType { @@ -58,4 +78,8 @@ export interface ProductType { export interface ProductTypeVariables { id: string; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/ProductUpdate.ts b/src/products/types/ProductUpdate.ts index a356f4691..b30468cb8 100644 --- a/src/products/types/ProductUpdate.ts +++ b/src/products/types/ProductUpdate.ts @@ -16,22 +16,42 @@ export interface ProductUpdate_productUpdate_errors { attributes: string[] | null; } -export interface ProductUpdate_productUpdate_product_attributes_attribute_values_file { +export interface ProductUpdate_productUpdate_product_attributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductUpdate_productUpdate_product_attributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductUpdate_productUpdate_product_attributes_attribute_values { +export interface ProductUpdate_productUpdate_product_attributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductUpdate_productUpdate_product_attributes_attribute_values_file | null; + file: ProductUpdate_productUpdate_product_attributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductUpdate_productUpdate_product_attributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductUpdate_productUpdate_product_attributes_attribute_values_edges_node; +} + +export interface ProductUpdate_productUpdate_product_attributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductUpdate_productUpdate_product_attributes_attribute_values_pageInfo; + edges: ProductUpdate_productUpdate_product_attributes_attribute_values_edges[]; +} + export interface ProductUpdate_productUpdate_product_attributes_attribute { __typename: "Attribute"; id: string; @@ -41,7 +61,7 @@ export interface ProductUpdate_productUpdate_product_attributes_attribute { entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductUpdate_productUpdate_product_attributes_attribute_values | null)[] | null; + values: ProductUpdate_productUpdate_product_attributes_attribute_values | null; } export interface ProductUpdate_productUpdate_product_attributes_values_file { @@ -66,27 +86,47 @@ export interface ProductUpdate_productUpdate_product_attributes { values: (ProductUpdate_productUpdate_product_attributes_values | null)[]; } -export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values_file { +export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values { +export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductUpdate_productUpdate_product_productType_variantAttributes_values_file | null; + file: ProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node; +} + +export interface ProductUpdate_productUpdate_product_productType_variantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductUpdate_productUpdate_product_productType_variantAttributes_values_pageInfo; + edges: ProductUpdate_productUpdate_product_productType_variantAttributes_values_edges[]; +} + export interface ProductUpdate_productUpdate_product_productType_variantAttributes { __typename: "Attribute"; id: string; name: string | null; - values: (ProductUpdate_productUpdate_product_productType_variantAttributes_values | null)[] | null; + values: ProductUpdate_productUpdate_product_productType_variantAttributes_values | null; } export interface ProductUpdate_productUpdate_product_productType_taxType { @@ -301,4 +341,8 @@ export interface ProductUpdate { export interface ProductUpdateVariables { id: string; input: ProductInput; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/ProductVariantChannelListingUpdate.ts b/src/products/types/ProductVariantChannelListingUpdate.ts index 2f1f92628..90c912fb8 100644 --- a/src/products/types/ProductVariantChannelListingUpdate.ts +++ b/src/products/types/ProductVariantChannelListingUpdate.ts @@ -3,150 +3,36 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductVariantChannelListingAddInput, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum, ProductErrorCode } from "./../../types/globalTypes"; +import { ProductVariantChannelListingAddInput, ProductErrorCode } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductVariantChannelListingUpdate // ==================================================== -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_attribute_values { - __typename: "AttributeValue"; +export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_channel { + __typename: "Channel"; id: string; - name: string | null; - slug: string | null; - file: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_attribute_values_file | null; - reference: string | null; - richText: any | null; + name: string; + currencyCode: string; } -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_attribute { - __typename: "Attribute"; - id: string; - name: string | null; - slug: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_attribute_values | null)[] | null; +export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_price { + __typename: "Money"; + amount: number; + currency: string; } -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; +export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_costPrice { + __typename: "Money"; + amount: number; + currency: string; } -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes { - __typename: "SelectedAttribute"; - attribute: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_attribute; - values: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes_values | null)[]; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_attribute { - __typename: "Attribute"; - id: string; - name: string | null; - slug: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_attribute_values | null)[] | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes { - __typename: "SelectedAttribute"; - attribute: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_attribute; - values: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes_values | null)[]; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_media { - __typename: "ProductMedia"; - id: string; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_media { - __typename: "ProductMedia"; - id: string; - alt: string; - sortOrder: number | null; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_thumbnail { - __typename: "Image"; - url: string; +export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings { + __typename: "ProductVariantChannelListing"; + channel: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_channel; + price: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_price | null; + costPrice: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_costPrice | null; } export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_channelListings_channel { @@ -191,100 +77,25 @@ export interface ProductVariantChannelListingUpdate_productVariantChannelListing export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_channelListings { __typename: "ProductChannelListing"; - publicationDate: any | null; isPublished: boolean; + publicationDate: any | null; + isAvailableForPurchase: boolean | null; + availableForPurchase: any | null; + visibleInListings: boolean; channel: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_channelListings_channel; pricing: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_channelListings_pricing | null; } -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_variants_media { - __typename: "ProductMedia"; - id: string; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_variants { - __typename: "ProductVariant"; - id: string; - name: string; - sku: string; - media: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_variants_media[] | null; -} - export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product { __typename: "Product"; - id: string; - defaultVariant: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_defaultVariant | null; - media: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_media[] | null; - name: string; - thumbnail: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_thumbnail | null; channelListings: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_channelListings[] | null; - variants: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product_variants | null)[] | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings { - __typename: "ProductVariantChannelListing"; - channel: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_channel; - price: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_price | null; - costPrice: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings_costPrice | null; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_stocks_warehouse; -} - -export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; } export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant { __typename: "ProductVariant"; id: string; - metadata: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_metadata | null)[]; - privateMetadata: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_privateMetadata | null)[]; - selectionAttributes: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_selectionAttributes[]; - nonSelectionAttributes: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_nonSelectionAttributes[]; - media: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_media[] | null; - name: string; - product: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product; channelListings: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_channelListings[] | null; - sku: string; - stocks: (ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_stocks | null)[] | null; - trackInventory: boolean; - weight: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_weight | null; + product: ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_variant_product; } export interface ProductVariantChannelListingUpdate_productVariantChannelListingUpdate_errors { diff --git a/src/products/types/ProductVariantCreateData.ts b/src/products/types/ProductVariantCreateData.ts index 9abc72fc8..304fdffdf 100644 --- a/src/products/types/ProductVariantCreateData.ts +++ b/src/products/types/ProductVariantCreateData.ts @@ -28,22 +28,42 @@ export interface ProductVariantCreateData_product_channelListings { channel: ProductVariantCreateData_product_channelListings_channel; } -export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values_file { +export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values { +export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariantCreateData_product_productType_selectionVariantAttributes_values_file | null; + file: ProductVariantCreateData_product_productType_selectionVariantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariantCreateData_product_productType_selectionVariantAttributes_values_edges_node; +} + +export interface ProductVariantCreateData_product_productType_selectionVariantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariantCreateData_product_productType_selectionVariantAttributes_values_pageInfo; + edges: ProductVariantCreateData_product_productType_selectionVariantAttributes_values_edges[]; +} + export interface ProductVariantCreateData_product_productType_selectionVariantAttributes { __typename: "Attribute"; id: string; @@ -53,25 +73,45 @@ export interface ProductVariantCreateData_product_productType_selectionVariantAt entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariantCreateData_product_productType_selectionVariantAttributes_values | null)[] | null; + values: ProductVariantCreateData_product_productType_selectionVariantAttributes_values | null; } -export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_file { +export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values { +export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_file | null; + file: ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_edges_node; +} + +export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_pageInfo; + edges: ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values_edges[]; +} + export interface ProductVariantCreateData_product_productType_nonSelectionVariantAttributes { __typename: "Attribute"; id: string; @@ -81,7 +121,7 @@ export interface ProductVariantCreateData_product_productType_nonSelectionVarian entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values | null)[] | null; + values: ProductVariantCreateData_product_productType_nonSelectionVariantAttributes_values | null; } export interface ProductVariantCreateData_product_productType { @@ -128,4 +168,8 @@ export interface ProductVariantCreateData { export interface ProductVariantCreateDataVariables { id: string; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/ProductVariantDetails.ts b/src/products/types/ProductVariantDetails.ts index e763ce06d..f2a0ebaef 100644 --- a/src/products/types/ProductVariantDetails.ts +++ b/src/products/types/ProductVariantDetails.ts @@ -21,22 +21,42 @@ export interface ProductVariantDetails_productVariant_privateMetadata { value: string; } -export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values_file { +export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values { +export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariantDetails_productVariant_selectionAttributes_attribute_values_file | null; + file: ProductVariantDetails_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariantDetails_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface ProductVariantDetails_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariantDetails_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: ProductVariantDetails_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface ProductVariantDetails_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -46,7 +66,7 @@ export interface ProductVariantDetails_productVariant_selectionAttributes_attrib entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariantDetails_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: ProductVariantDetails_productVariant_selectionAttributes_attribute_values | null; } export interface ProductVariantDetails_productVariant_selectionAttributes_values_file { @@ -71,22 +91,42 @@ export interface ProductVariantDetails_productVariant_selectionAttributes { values: (ProductVariantDetails_productVariant_selectionAttributes_values | null)[]; } -export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_file { +export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values { +export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface ProductVariantDetails_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -96,7 +136,7 @@ export interface ProductVariantDetails_productVariant_nonSelectionAttributes_att entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: ProductVariantDetails_productVariant_nonSelectionAttributes_attribute_values | null; } export interface ProductVariantDetails_productVariant_nonSelectionAttributes_values_file { @@ -293,4 +333,8 @@ export interface ProductVariantDetails { export interface ProductVariantDetailsVariables { id: string; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/ProductVariantReorder.ts b/src/products/types/ProductVariantReorder.ts index a2e8aae33..68ffcfdaa 100644 --- a/src/products/types/ProductVariantReorder.ts +++ b/src/products/types/ProductVariantReorder.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ReorderInput, ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ReorderInput, ProductErrorCode } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductVariantReorder @@ -15,276 +15,15 @@ export interface ProductVariantReorder_productVariantReorder_errors { field: string | null; } -export interface ProductVariantReorder_productVariantReorder_product_attributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_attributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantReorder_productVariantReorder_product_attributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_attributes_attribute { - __typename: "Attribute"; - id: string; - slug: string | null; - name: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductVariantReorder_productVariantReorder_product_attributes_attribute_values | null)[] | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_attributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_attributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantReorder_productVariantReorder_product_attributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_attributes { - __typename: "SelectedAttribute"; - attribute: ProductVariantReorder_productVariantReorder_product_attributes_attribute; - values: (ProductVariantReorder_productVariantReorder_product_attributes_values | null)[]; -} - -export interface ProductVariantReorder_productVariantReorder_product_productType_variantAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_productType_variantAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantReorder_productVariantReorder_product_productType_variantAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_productType_variantAttributes { - __typename: "Attribute"; - id: string; - name: string | null; - values: (ProductVariantReorder_productVariantReorder_product_productType_variantAttributes_values | null)[] | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_productType_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_productType { - __typename: "ProductType"; - id: string; - variantAttributes: (ProductVariantReorder_productVariantReorder_product_productType_variantAttributes | null)[] | null; - name: string; - hasVariants: boolean; - taxType: ProductVariantReorder_productVariantReorder_product_productType_taxType | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_start_net; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_stop_net; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_start | null; - stop: ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange_stop | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: ProductVariantReorder_productVariantReorder_product_channelListings_pricing_priceRange | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_channelListings { - __typename: "ProductChannelListing"; - channel: ProductVariantReorder_productVariantReorder_product_channelListings_channel; - pricing: ProductVariantReorder_productVariantReorder_product_channelListings_pricing | null; - isPublished: boolean; - publicationDate: any | null; - isAvailableForPurchase: boolean | null; - availableForPurchase: any | null; - visibleInListings: boolean; -} - -export interface ProductVariantReorder_productVariantReorder_product_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_category { - __typename: "Category"; - id: string; - name: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_collections { - __typename: "Collection"; - id: string; - name: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_media { - __typename: "ProductMedia"; - id: string; - alt: string; - sortOrder: number | null; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_media { - __typename: "ProductMedia"; - url: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductVariantReorder_productVariantReorder_product_variants_stocks_warehouse; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantReorder_productVariantReorder_product_variants_channelListings { - __typename: "ProductVariantChannelListing"; - channel: ProductVariantReorder_productVariantReorder_product_variants_channelListings_channel; - price: ProductVariantReorder_productVariantReorder_product_variants_channelListings_price | null; - costPrice: ProductVariantReorder_productVariantReorder_product_variants_channelListings_costPrice | null; -} - export interface ProductVariantReorder_productVariantReorder_product_variants { __typename: "ProductVariant"; id: string; - sku: string; - name: string; - margin: number | null; - media: ProductVariantReorder_productVariantReorder_product_variants_media[] | null; - stocks: (ProductVariantReorder_productVariantReorder_product_variants_stocks | null)[] | null; - trackInventory: boolean; - channelListings: ProductVariantReorder_productVariantReorder_product_variants_channelListings[] | null; -} - -export interface ProductVariantReorder_productVariantReorder_product_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - -export interface ProductVariantReorder_productVariantReorder_product_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; } export interface ProductVariantReorder_productVariantReorder_product { __typename: "Product"; id: string; - attributes: ProductVariantReorder_productVariantReorder_product_attributes[]; - productType: ProductVariantReorder_productVariantReorder_product_productType; - channelListings: ProductVariantReorder_productVariantReorder_product_channelListings[] | null; - metadata: (ProductVariantReorder_productVariantReorder_product_metadata | null)[]; - privateMetadata: (ProductVariantReorder_productVariantReorder_product_privateMetadata | null)[]; - name: string; - slug: string; - description: any | null; - seoTitle: string | null; - seoDescription: string | null; - rating: number | null; - defaultVariant: ProductVariantReorder_productVariantReorder_product_defaultVariant | null; - category: ProductVariantReorder_productVariantReorder_product_category | null; - collections: (ProductVariantReorder_productVariantReorder_product_collections | null)[] | null; - chargeTaxes: boolean; - media: ProductVariantReorder_productVariantReorder_product_media[] | null; - isAvailable: boolean | null; variants: (ProductVariantReorder_productVariantReorder_product_variants | null)[] | null; - weight: ProductVariantReorder_productVariantReorder_product_weight | null; - taxType: ProductVariantReorder_productVariantReorder_product_taxType | null; } export interface ProductVariantReorder_productVariantReorder { diff --git a/src/products/types/ProductVariantSetDefault.ts b/src/products/types/ProductVariantSetDefault.ts index e8f0ace2b..16dc26ea0 100644 --- a/src/products/types/ProductVariantSetDefault.ts +++ b/src/products/types/ProductVariantSetDefault.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ProductErrorCode } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: ProductVariantSetDefault @@ -15,276 +15,23 @@ export interface ProductVariantSetDefault_productVariantSetDefault_errors { field: string | null; } -export interface ProductVariantSetDefault_productVariantSetDefault_product_attributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_attributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantSetDefault_productVariantSetDefault_product_attributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_attributes_attribute { - __typename: "Attribute"; - id: string; - slug: string | null; - name: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (ProductVariantSetDefault_productVariantSetDefault_product_attributes_attribute_values | null)[] | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_attributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_attributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantSetDefault_productVariantSetDefault_product_attributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_attributes { - __typename: "SelectedAttribute"; - attribute: ProductVariantSetDefault_productVariantSetDefault_product_attributes_attribute; - values: (ProductVariantSetDefault_productVariantSetDefault_product_attributes_values | null)[]; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_productType_variantAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_productType_variantAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: ProductVariantSetDefault_productVariantSetDefault_product_productType_variantAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_productType_variantAttributes { - __typename: "Attribute"; - id: string; - name: string | null; - values: (ProductVariantSetDefault_productVariantSetDefault_product_productType_variantAttributes_values | null)[] | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_productType_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_productType { - __typename: "ProductType"; - id: string; - variantAttributes: (ProductVariantSetDefault_productVariantSetDefault_product_productType_variantAttributes | null)[] | null; - name: string; - hasVariants: boolean; - taxType: ProductVariantSetDefault_productVariantSetDefault_product_productType_taxType | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_start_net; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_stop_net; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_start | null; - stop: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange_stop | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing_priceRange | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_channelListings { - __typename: "ProductChannelListing"; - channel: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_channel; - pricing: ProductVariantSetDefault_productVariantSetDefault_product_channelListings_pricing | null; - isPublished: boolean; - publicationDate: any | null; - isAvailableForPurchase: boolean | null; - availableForPurchase: any | null; - visibleInListings: boolean; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - export interface ProductVariantSetDefault_productVariantSetDefault_product_defaultVariant { __typename: "ProductVariant"; id: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_category { - __typename: "Category"; - id: string; name: string; } -export interface ProductVariantSetDefault_productVariantSetDefault_product_collections { - __typename: "Collection"; - id: string; - name: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_media { - __typename: "ProductMedia"; - id: string; - alt: string; - sortOrder: number | null; - url: string; - type: ProductMediaType; - oembedData: any; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_media { - __typename: "ProductMedia"; - url: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: ProductVariantSetDefault_productVariantSetDefault_product_variants_stocks_warehouse; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings { - __typename: "ProductVariantChannelListing"; - channel: ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings_channel; - price: ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings_price | null; - costPrice: ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings_costPrice | null; -} - export interface ProductVariantSetDefault_productVariantSetDefault_product_variants { __typename: "ProductVariant"; id: string; - sku: string; name: string; - margin: number | null; - media: ProductVariantSetDefault_productVariantSetDefault_product_variants_media[] | null; - stocks: (ProductVariantSetDefault_productVariantSetDefault_product_variants_stocks | null)[] | null; - trackInventory: boolean; - channelListings: ProductVariantSetDefault_productVariantSetDefault_product_variants_channelListings[] | null; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - -export interface ProductVariantSetDefault_productVariantSetDefault_product_taxType { - __typename: "TaxType"; - description: string | null; - taxCode: string | null; } export interface ProductVariantSetDefault_productVariantSetDefault_product { __typename: "Product"; id: string; - attributes: ProductVariantSetDefault_productVariantSetDefault_product_attributes[]; - productType: ProductVariantSetDefault_productVariantSetDefault_product_productType; - channelListings: ProductVariantSetDefault_productVariantSetDefault_product_channelListings[] | null; - metadata: (ProductVariantSetDefault_productVariantSetDefault_product_metadata | null)[]; - privateMetadata: (ProductVariantSetDefault_productVariantSetDefault_product_privateMetadata | null)[]; - name: string; - slug: string; - description: any | null; - seoTitle: string | null; - seoDescription: string | null; - rating: number | null; defaultVariant: ProductVariantSetDefault_productVariantSetDefault_product_defaultVariant | null; - category: ProductVariantSetDefault_productVariantSetDefault_product_category | null; - collections: (ProductVariantSetDefault_productVariantSetDefault_product_collections | null)[] | null; - chargeTaxes: boolean; - media: ProductVariantSetDefault_productVariantSetDefault_product_media[] | null; - isAvailable: boolean | null; variants: (ProductVariantSetDefault_productVariantSetDefault_product_variants | null)[] | null; - weight: ProductVariantSetDefault_productVariantSetDefault_product_weight | null; - taxType: ProductVariantSetDefault_productVariantSetDefault_product_taxType | null; } export interface ProductVariantSetDefault_productVariantSetDefault { diff --git a/src/products/types/SimpleProductUpdate.ts b/src/products/types/SimpleProductUpdate.ts index 3ce0b1daf..5c4103f30 100644 --- a/src/products/types/SimpleProductUpdate.ts +++ b/src/products/types/SimpleProductUpdate.ts @@ -16,22 +16,42 @@ export interface SimpleProductUpdate_productUpdate_errors { attributes: string[] | null; } -export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values_file { +export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values { +export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productUpdate_product_attributes_attribute_values_file | null; + file: SimpleProductUpdate_productUpdate_product_attributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productUpdate_product_attributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productUpdate_product_attributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productUpdate_product_attributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productUpdate_product_attributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productUpdate_product_attributes_attribute { __typename: "Attribute"; id: string; @@ -41,7 +61,7 @@ export interface SimpleProductUpdate_productUpdate_product_attributes_attribute entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productUpdate_product_attributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productUpdate_product_attributes_attribute_values | null; } export interface SimpleProductUpdate_productUpdate_product_attributes_values_file { @@ -66,27 +86,47 @@ export interface SimpleProductUpdate_productUpdate_product_attributes { values: (SimpleProductUpdate_productUpdate_product_attributes_values | null)[]; } -export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_file { +export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values { +export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_file | null; + file: SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_edges_node; +} + +export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_pageInfo; + edges: SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values_edges[]; +} + export interface SimpleProductUpdate_productUpdate_product_productType_variantAttributes { __typename: "Attribute"; id: string; name: string | null; - values: (SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values | null)[] | null; + values: SimpleProductUpdate_productUpdate_product_productType_variantAttributes_values | null; } export interface SimpleProductUpdate_productUpdate_product_productType_taxType { @@ -313,22 +353,42 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_private value: string; } -export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -338,7 +398,7 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_selecti entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_values_file { @@ -363,22 +423,42 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_selecti values: (SimpleProductUpdate_productVariantUpdate_productVariant_selectionAttributes_values | null)[]; } -export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -388,7 +468,7 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSele entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_values_file { @@ -604,22 +684,42 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_p value: string; } -export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -629,7 +729,7 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_s entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_values_file { @@ -654,22 +754,42 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_s values: (SimpleProductUpdate_productVariantStocksCreate_productVariant_selectionAttributes_values | null)[]; } -export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -679,7 +799,7 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_n entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_nonSelectionAttributes_values_file { @@ -894,22 +1014,42 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_p value: string; } -export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -919,7 +1059,7 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_s entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_values_file { @@ -944,22 +1084,42 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_s values: (SimpleProductUpdate_productVariantStocksDelete_productVariant_selectionAttributes_values | null)[]; } -export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -969,7 +1129,7 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_n entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_nonSelectionAttributes_values_file { @@ -1185,22 +1345,42 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_p value: string; } -export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -1210,7 +1390,7 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_s entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_values_file { @@ -1235,22 +1415,42 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_s values: (SimpleProductUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_values | null)[]; } -export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_file { +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values { +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -1260,7 +1460,7 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_n entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values | null; } export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_values_file { @@ -1473,4 +1673,8 @@ export interface SimpleProductUpdateVariables { addStocks: StockInput[]; deleteStocks: string[]; updateStocks: StockInput[]; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/VariantCreate.ts b/src/products/types/VariantCreate.ts index 1bccfde5b..5a9d092f4 100644 --- a/src/products/types/VariantCreate.ts +++ b/src/products/types/VariantCreate.ts @@ -28,22 +28,42 @@ export interface VariantCreate_productVariantCreate_productVariant_privateMetada value: string; } -export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_file { +export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values { +export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_file | null; + file: VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -53,7 +73,7 @@ export interface VariantCreate_productVariantCreate_productVariant_selectionAttr entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: VariantCreate_productVariantCreate_productVariant_selectionAttributes_attribute_values | null; } export interface VariantCreate_productVariantCreate_productVariant_selectionAttributes_values_file { @@ -78,22 +98,42 @@ export interface VariantCreate_productVariantCreate_productVariant_selectionAttr values: (VariantCreate_productVariantCreate_productVariant_selectionAttributes_values | null)[]; } -export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_file { +export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values { +export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -103,7 +143,7 @@ export interface VariantCreate_productVariantCreate_productVariant_nonSelectionA entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_attribute_values | null; } export interface VariantCreate_productVariantCreate_productVariant_nonSelectionAttributes_values_file { @@ -306,4 +346,8 @@ export interface VariantCreate { export interface VariantCreateVariables { input: ProductVariantCreateInput; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/types/VariantMediaAssign.ts b/src/products/types/VariantMediaAssign.ts index 69fd95156..79809b569 100644 --- a/src/products/types/VariantMediaAssign.ts +++ b/src/products/types/VariantMediaAssign.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ProductErrorCode, ProductMediaType } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: VariantMediaAssign @@ -15,131 +15,16 @@ export interface VariantMediaAssign_variantMediaAssign_errors { field: string | null; } -export interface VariantMediaAssign_variantMediaAssign_productVariant_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_attribute { - __typename: "Attribute"; - id: string; - name: string | null; - slug: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_attribute_values | null)[] | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes { - __typename: "SelectedAttribute"; - attribute: VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_attribute; - values: (VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes_values | null)[]; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_attribute { - __typename: "Attribute"; - id: string; - name: string | null; - slug: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes { - __typename: "SelectedAttribute"; - attribute: VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_attribute; - values: (VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes_values | null)[]; -} - export interface VariantMediaAssign_variantMediaAssign_productVariant_media { __typename: "ProductMedia"; id: string; + alt: string; + sortOrder: number | null; url: string; type: ProductMediaType; oembedData: any; } -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - export interface VariantMediaAssign_variantMediaAssign_productVariant_product_media { __typename: "ProductMedia"; id: string; @@ -150,62 +35,11 @@ export interface VariantMediaAssign_variantMediaAssign_productVariant_product_me oembedData: any; } -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_thumbnail { - __typename: "Image"; - url: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_start_net; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_stop_net; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_start | null; - stop: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange_stop | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing_priceRange | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings { - __typename: "ProductChannelListing"; - publicationDate: any | null; - isPublished: boolean; - channel: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_channel; - pricing: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings_pricing | null; -} - export interface VariantMediaAssign_variantMediaAssign_productVariant_product_variants_media { __typename: "ProductMedia"; id: string; + alt: string; + sortOrder: number | null; url: string; type: ProductMediaType; oembedData: any; @@ -222,75 +56,15 @@ export interface VariantMediaAssign_variantMediaAssign_productVariant_product_va export interface VariantMediaAssign_variantMediaAssign_productVariant_product { __typename: "Product"; id: string; - defaultVariant: VariantMediaAssign_variantMediaAssign_productVariant_product_defaultVariant | null; media: VariantMediaAssign_variantMediaAssign_productVariant_product_media[] | null; - name: string; - thumbnail: VariantMediaAssign_variantMediaAssign_productVariant_product_thumbnail | null; - channelListings: VariantMediaAssign_variantMediaAssign_productVariant_product_channelListings[] | null; variants: (VariantMediaAssign_variantMediaAssign_productVariant_product_variants | null)[] | null; } -export interface VariantMediaAssign_variantMediaAssign_productVariant_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_channelListings { - __typename: "ProductVariantChannelListing"; - channel: VariantMediaAssign_variantMediaAssign_productVariant_channelListings_channel; - price: VariantMediaAssign_variantMediaAssign_productVariant_channelListings_price | null; - costPrice: VariantMediaAssign_variantMediaAssign_productVariant_channelListings_costPrice | null; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: VariantMediaAssign_variantMediaAssign_productVariant_stocks_warehouse; -} - -export interface VariantMediaAssign_variantMediaAssign_productVariant_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - export interface VariantMediaAssign_variantMediaAssign_productVariant { __typename: "ProductVariant"; id: string; - metadata: (VariantMediaAssign_variantMediaAssign_productVariant_metadata | null)[]; - privateMetadata: (VariantMediaAssign_variantMediaAssign_productVariant_privateMetadata | null)[]; - selectionAttributes: VariantMediaAssign_variantMediaAssign_productVariant_selectionAttributes[]; - nonSelectionAttributes: VariantMediaAssign_variantMediaAssign_productVariant_nonSelectionAttributes[]; media: VariantMediaAssign_variantMediaAssign_productVariant_media[] | null; - name: string; product: VariantMediaAssign_variantMediaAssign_productVariant_product; - channelListings: VariantMediaAssign_variantMediaAssign_productVariant_channelListings[] | null; - sku: string; - stocks: (VariantMediaAssign_variantMediaAssign_productVariant_stocks | null)[] | null; - trackInventory: boolean; - weight: VariantMediaAssign_variantMediaAssign_productVariant_weight | null; } export interface VariantMediaAssign_variantMediaAssign { diff --git a/src/products/types/VariantMediaUnassign.ts b/src/products/types/VariantMediaUnassign.ts index acd06b520..6e9ff6a7d 100644 --- a/src/products/types/VariantMediaUnassign.ts +++ b/src/products/types/VariantMediaUnassign.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ProductErrorCode, AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; +import { ProductErrorCode, ProductMediaType } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: VariantMediaUnassign @@ -15,131 +15,16 @@ export interface VariantMediaUnassign_variantMediaUnassign_errors { field: string | null; } -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_metadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_privateMetadata { - __typename: "MetadataItem"; - key: string; - value: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_attribute { - __typename: "Attribute"; - id: string; - name: string | null; - slug: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_attribute_values | null)[] | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes { - __typename: "SelectedAttribute"; - attribute: VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_attribute; - values: (VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes_values | null)[]; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_attribute_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_attribute_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_attribute_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_attribute { - __typename: "Attribute"; - id: string; - name: string | null; - slug: string | null; - inputType: AttributeInputTypeEnum | null; - entityType: AttributeEntityTypeEnum | null; - valueRequired: boolean; - unit: MeasurementUnitsEnum | null; - values: (VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_values_file { - __typename: "File"; - url: string; - contentType: string | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_values { - __typename: "AttributeValue"; - id: string; - name: string | null; - slug: string | null; - file: VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_values_file | null; - reference: string | null; - richText: any | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes { - __typename: "SelectedAttribute"; - attribute: VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_attribute; - values: (VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes_values | null)[]; -} - export interface VariantMediaUnassign_variantMediaUnassign_productVariant_media { __typename: "ProductMedia"; id: string; + alt: string; + sortOrder: number | null; url: string; type: ProductMediaType; oembedData: any; } -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_defaultVariant { - __typename: "ProductVariant"; - id: string; -} - export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_media { __typename: "ProductMedia"; id: string; @@ -150,62 +35,11 @@ export interface VariantMediaUnassign_variantMediaUnassign_productVariant_produc oembedData: any; } -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_thumbnail { - __typename: "Image"; - url: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_start_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_start { - __typename: "TaxedMoney"; - net: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_start_net; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_stop_net { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_stop { - __typename: "TaxedMoney"; - net: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_stop_net; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange { - __typename: "TaxedMoneyRange"; - start: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_start | null; - stop: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange_stop | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing { - __typename: "ProductPricingInfo"; - priceRange: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing_priceRange | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings { - __typename: "ProductChannelListing"; - publicationDate: any | null; - isPublished: boolean; - channel: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_channel; - pricing: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings_pricing | null; -} - export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product_variants_media { __typename: "ProductMedia"; id: string; + alt: string; + sortOrder: number | null; url: string; type: ProductMediaType; oembedData: any; @@ -222,75 +56,15 @@ export interface VariantMediaUnassign_variantMediaUnassign_productVariant_produc export interface VariantMediaUnassign_variantMediaUnassign_productVariant_product { __typename: "Product"; id: string; - defaultVariant: VariantMediaUnassign_variantMediaUnassign_productVariant_product_defaultVariant | null; media: VariantMediaUnassign_variantMediaUnassign_productVariant_product_media[] | null; - name: string; - thumbnail: VariantMediaUnassign_variantMediaUnassign_productVariant_product_thumbnail | null; - channelListings: VariantMediaUnassign_variantMediaUnassign_productVariant_product_channelListings[] | null; variants: (VariantMediaUnassign_variantMediaUnassign_productVariant_product_variants | null)[] | null; } -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings_channel { - __typename: "Channel"; - id: string; - name: string; - currencyCode: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings_price { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings_costPrice { - __typename: "Money"; - amount: number; - currency: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings { - __typename: "ProductVariantChannelListing"; - channel: VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings_channel; - price: VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings_price | null; - costPrice: VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings_costPrice | null; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_stocks_warehouse { - __typename: "Warehouse"; - id: string; - name: string; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_stocks { - __typename: "Stock"; - id: string; - quantity: number; - quantityAllocated: number; - warehouse: VariantMediaUnassign_variantMediaUnassign_productVariant_stocks_warehouse; -} - -export interface VariantMediaUnassign_variantMediaUnassign_productVariant_weight { - __typename: "Weight"; - unit: WeightUnitsEnum; - value: number; -} - export interface VariantMediaUnassign_variantMediaUnassign_productVariant { __typename: "ProductVariant"; id: string; - metadata: (VariantMediaUnassign_variantMediaUnassign_productVariant_metadata | null)[]; - privateMetadata: (VariantMediaUnassign_variantMediaUnassign_productVariant_privateMetadata | null)[]; - selectionAttributes: VariantMediaUnassign_variantMediaUnassign_productVariant_selectionAttributes[]; - nonSelectionAttributes: VariantMediaUnassign_variantMediaUnassign_productVariant_nonSelectionAttributes[]; media: VariantMediaUnassign_variantMediaUnassign_productVariant_media[] | null; - name: string; product: VariantMediaUnassign_variantMediaUnassign_productVariant_product; - channelListings: VariantMediaUnassign_variantMediaUnassign_productVariant_channelListings[] | null; - sku: string; - stocks: (VariantMediaUnassign_variantMediaUnassign_productVariant_stocks | null)[] | null; - trackInventory: boolean; - weight: VariantMediaUnassign_variantMediaUnassign_productVariant_weight | null; } export interface VariantMediaUnassign_variantMediaUnassign { diff --git a/src/products/types/VariantUpdate.ts b/src/products/types/VariantUpdate.ts index fc9be2530..8b94d2342 100644 --- a/src/products/types/VariantUpdate.ts +++ b/src/products/types/VariantUpdate.ts @@ -28,22 +28,42 @@ export interface VariantUpdate_productVariantUpdate_productVariant_privateMetada value: string; } -export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_file { +export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values { +export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_file | null; + file: VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -53,7 +73,7 @@ export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttr entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_attribute_values | null; } export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_values_file { @@ -78,22 +98,42 @@ export interface VariantUpdate_productVariantUpdate_productVariant_selectionAttr values: (VariantUpdate_productVariantUpdate_productVariant_selectionAttributes_values | null)[]; } -export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_file { +export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values { +export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -103,7 +143,7 @@ export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionA entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_attribute_values | null; } export interface VariantUpdate_productVariantUpdate_productVariant_nonSelectionAttributes_values_file { @@ -319,22 +359,42 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_private value: string; } -export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_file { +export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values { +export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_file | null; + file: VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges_node; +} + +export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_pageInfo; + edges: VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values_edges[]; +} + export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -344,7 +404,7 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_selecti entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values | null)[] | null; + values: VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_attribute_values | null; } export interface VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_values_file { @@ -369,22 +429,42 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_selecti values: (VariantUpdate_productVariantStocksUpdate_productVariant_selectionAttributes_values | null)[]; } -export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_file { +export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file { __typename: "File"; url: string; contentType: string | null; } -export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values { +export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node { __typename: "AttributeValue"; id: string; name: string | null; slug: string | null; - file: VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_file | null; + file: VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node_file | null; reference: string | null; richText: any | null; } +export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + cursor: string; + node: VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges_node; +} + +export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values { + __typename: "AttributeValueCountableConnection"; + pageInfo: VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_pageInfo; + edges: VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values_edges[]; +} + export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute { __typename: "Attribute"; id: string; @@ -394,7 +474,7 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSele entityType: AttributeEntityTypeEnum | null; valueRequired: boolean; unit: MeasurementUnitsEnum | null; - values: (VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values | null)[] | null; + values: VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_attribute_values | null; } export interface VariantUpdate_productVariantStocksUpdate_productVariant_nonSelectionAttributes_values_file { @@ -672,4 +752,8 @@ export interface VariantUpdateVariables { trackInventory: boolean; stocks: StockInput[]; weight?: any | null; + firstValues?: number | null; + afterValues?: string | null; + lastValues?: number | null; + beforeValues?: string | null; } diff --git a/src/products/utils/data.ts b/src/products/utils/data.ts index a97307ec6..e59c5a7c1 100644 --- a/src/products/utils/data.ts +++ b/src/products/utils/data.ts @@ -17,7 +17,7 @@ import { ProductDetails_product_variants } from "@saleor/products/types/ProductDetails"; import { StockInput } from "@saleor/types/globalTypes"; -import { mapMetadataItemToInput } from "@saleor/utils/maps"; +import { mapEdgesToItems, mapMetadataItemToInput } from "@saleor/utils/maps"; import { ProductStockInput } from "../components/ProductStocks"; import { ProductType_productType_productAttributes } from "../types/ProductType"; @@ -52,7 +52,7 @@ export function getAttributeInputFromProduct( inputType: attribute.attribute.inputType, isRequired: attribute.attribute.valueRequired, selectedValues: attribute.values, - values: attribute.attribute.values, + values: mapEdgesToItems(attribute.attribute.values), unit: attribute.attribute.unit }, id: attribute.attribute.id, @@ -71,7 +71,7 @@ export function getAttributeInputFromProductType( entityType: attribute.entityType, inputType: attribute.inputType, isRequired: attribute.valueRequired, - values: attribute.values, + values: mapEdgesToItems(attribute.values), unit: attribute.unit }, id: attribute.id, @@ -89,7 +89,7 @@ export function getAttributeInputFromAttributes( entityType: attribute.entityType, inputType: attribute.inputType, isRequired: attribute.valueRequired, - values: attribute.values, + values: mapEdgesToItems(attribute.values), unit: attribute.unit, variantAttributeScope }, @@ -109,7 +109,7 @@ export function getAttributeInputFromSelectedAttributes( inputType: attribute.attribute.inputType, isRequired: attribute.attribute.valueRequired, selectedValues: attribute.values, - values: attribute.attribute.values, + values: mapEdgesToItems(attribute.attribute.values), unit: attribute.attribute.unit, variantAttributeScope }, diff --git a/src/products/views/ProductCreate/ProductCreate.tsx b/src/products/views/ProductCreate/ProductCreate.tsx index 1303d7ec9..57f106754 100644 --- a/src/products/views/ProductCreate/ProductCreate.tsx +++ b/src/products/views/ProductCreate/ProductCreate.tsx @@ -25,6 +25,7 @@ import { productListUrl, productUrl } from "@saleor/products/urls"; +import useAttributeValueSearch from "@saleor/searches/useAttributeValueSearch"; import useCategorySearch from "@saleor/searches/useCategorySearch"; import useCollectionSearch from "@saleor/searches/useCollectionSearch"; import usePageSearch from "@saleor/searches/usePageSearch"; @@ -41,7 +42,7 @@ import { } from "@saleor/utils/metadata/updateMetadata"; import { useWarehouseList } from "@saleor/warehouses/queries"; import { warehouseAddPath } from "@saleor/warehouses/urls"; -import React from "react"; +import React, { useState } from "react"; import { useIntl } from "react-intl"; import { createHandler } from "./handlers"; @@ -102,6 +103,18 @@ export const ProductCreateView: React.FC = ({ params }) => { } = useProductSearch({ variables: DEFAULT_INITIAL_SEARCH_DATA }); + const [selectedAttribute, setSelectedAttribute] = useState(); + const { + loadMore: loadMoreAttributeValues, + search: searchAttributeValues, + result: searchAttributeValuesOpts + } = useAttributeValueSearch({ + variables: { + id: selectedAttribute, + ...DEFAULT_INITIAL_SEARCH_DATA + }, + skip: !selectedAttribute + }); const warehouses = useWarehouseList({ displayLoader: true, variables: { @@ -113,7 +126,8 @@ export const ProductCreateView: React.FC = ({ params }) => { const taxTypes = useTaxTypeList({}); const { data: selectedProductType } = useProductTypeQuery({ variables: { - id: selectedProductTypeId + id: selectedProductTypeId, + firstValues: 10 }, skip: !selectedProductTypeId }); @@ -243,6 +257,12 @@ export const ProductCreateView: React.FC = ({ params }) => { loading: searchProductsOpts.loading, onFetchMore: loadMoreProducts }; + const fetchMoreAttributeValues = { + hasMore: !!searchAttributeValuesOpts.data?.attribute?.values?.pageInfo + ?.hasNextPage, + loading: !!searchAttributeValuesOpts.loading, + onFetchMore: loadMoreAttributeValues + }; const loading = uploadFileOpts.loading || @@ -281,6 +301,9 @@ export const ProductCreateView: React.FC = ({ params }) => { currentChannels={currentChannels} categories={mapEdgesToItems(searchCategoryOpts?.data?.search)} collections={mapEdgesToItems(searchCollectionOpts?.data?.search)} + attributeValues={mapEdgesToItems( + searchAttributeValuesOpts?.data?.attribute.values + )} loading={loading} channelsErrors={ updateVariantChannelsOpts.data?.productVariantChannelListingUpdate @@ -293,6 +316,7 @@ export const ProductCreateView: React.FC = ({ params }) => { fetchCategories={searchCategory} fetchCollections={searchCollection} fetchProductTypes={searchProductTypes} + fetchAttributeValues={searchAttributeValues} header={intl.formatMessage({ defaultMessage: "New Product", description: "page header" @@ -320,9 +344,11 @@ export const ProductCreateView: React.FC = ({ params }) => { fetchMoreReferencePages={fetchMoreReferencePages} fetchReferenceProducts={searchProducts} fetchMoreReferenceProducts={fetchMoreReferenceProducts} + fetchMoreAttributeValues={fetchMoreAttributeValues} onCloseDialog={() => navigate(productAddUrl())} selectedProductType={selectedProductType?.productType} onSelectProductType={id => setSelectedProductTypeId(id)} + onAttributeSelect={setSelectedAttribute} /> ); diff --git a/src/products/views/ProductList/ProductList.tsx b/src/products/views/ProductList/ProductList.tsx index b49441a5c..6c5a378af 100644 --- a/src/products/views/ProductList/ProductList.tsx +++ b/src/products/views/ProductList/ProductList.tsx @@ -95,7 +95,11 @@ export const ProductList: React.FC = ({ params }) => { const intl = useIntl(); const { data: initialFilterAttributes - } = useInitialProductFilterAttributesQuery({}); + } = useInitialProductFilterAttributesQuery({ + variables: { + firstValues: 100 + } + }); const { data: initialFilterCategories } = useInitialProductFilterCategoriesQuery({ diff --git a/src/products/views/ProductList/filters.ts b/src/products/views/ProductList/filters.ts index 1ad7eff89..3babf23b3 100644 --- a/src/products/views/ProductList/filters.ts +++ b/src/products/views/ProductList/filters.ts @@ -68,9 +68,9 @@ export function getFilterOpts( .sort((a, b) => (a.name > b.name ? 1 : -1)) .map(attr => ({ active: maybe(() => params.attributes[attr.slug].length > 0, false), - choices: attr.values.map(val => ({ - label: val.name, - value: val.slug + choices: attr.values?.edges?.map(val => ({ + label: val.node.name, + value: val.node.slug })), name: attr.name, slug: attr.slug, diff --git a/src/products/views/ProductList/fixtures.ts b/src/products/views/ProductList/fixtures.ts index 3e72e83a1..daef20b0b 100644 --- a/src/products/views/ProductList/fixtures.ts +++ b/src/products/views/ProductList/fixtures.ts @@ -9,13 +9,16 @@ import { StockAvailability } from "@saleor/types/globalTypes"; export const productListFilterOpts: ProductListFilterOpts = { attributes: attributes.map(attr => ({ active: false, - choices: attr.values.map(val => ({ - label: val.name, - value: val.slug + choices: attr.values.edges.map(val => ({ + label: val.node.name, + value: val.node.slug })), name: attr.name, slug: attr.slug, - value: [attr.values[0].slug, attr.values.length > 2 && attr.values[2].slug] + value: [ + attr.values.edges[0].node.slug, + attr.values.edges.length > 2 && attr.values.edges[2].node.slug + ] })), categories: { ...fetchMoreProps, diff --git a/src/products/views/ProductUpdate/ProductUpdate.tsx b/src/products/views/ProductUpdate/ProductUpdate.tsx index 1e085da33..4f0c48c7a 100644 --- a/src/products/views/ProductUpdate/ProductUpdate.tsx +++ b/src/products/views/ProductUpdate/ProductUpdate.tsx @@ -38,6 +38,7 @@ import { useSimpleProductUpdateMutation, useVariantCreateMutation } from "@saleor/products/mutations"; +import useAttributeValueSearch from "@saleor/searches/useAttributeValueSearch"; import useCategorySearch from "@saleor/searches/useCategorySearch"; import useCollectionSearch from "@saleor/searches/useCollectionSearch"; import usePageSearch from "@saleor/searches/usePageSearch"; @@ -52,7 +53,7 @@ import { } from "@saleor/utils/metadata/updateMetadata"; import { useWarehouseList } from "@saleor/warehouses/queries"; import { warehouseAddPath } from "@saleor/warehouses/urls"; -import React from "react"; +import React, { useState } from "react"; import { defineMessages, FormattedMessage, useIntl } from "react-intl"; import { getMutationState } from "../../../misc"; @@ -140,6 +141,18 @@ export const ProductUpdate: React.FC = ({ id, params }) => { } = useProductSearch({ variables: DEFAULT_INITIAL_SEARCH_DATA }); + const [selectedAttribute, setSelectedAttribute] = useState(); + const { + loadMore: loadMoreAttributeValues, + search: searchAttributeValues, + result: searchAttributeValuesOpts + } = useAttributeValueSearch({ + variables: { + id: selectedAttribute, + ...DEFAULT_INITIAL_SEARCH_DATA + }, + skip: !selectedAttribute + }); const warehouses = useWarehouseList({ displayLoader: true, variables: { @@ -157,7 +170,10 @@ export const ProductUpdate: React.FC = ({ id, params }) => { const { availableChannels, channel } = useAppChannel(); const { data, loading, refetch } = useProductDetails({ displayLoader: true, - variables: { id } + variables: { + id, + firstValues: 10 + } }); const limitOpts = useShopLimitsQuery({ variables: { @@ -431,6 +447,10 @@ export const ProductUpdate: React.FC = ({ id, params }) => { const collections = mapEdgesToItems(searchCollectionsOpts?.data?.search); + const attributeValues = mapEdgesToItems( + searchAttributeValuesOpts?.data?.attribute.values + ); + const errors = [ ...(updateProductOpts.data?.productUpdate.errors || []), ...(updateSimpleProductOpts.data?.productUpdate.errors || []), @@ -467,6 +487,13 @@ export const ProductUpdate: React.FC = ({ id, params }) => { loadMoreProducts ); + const fetchMoreAttributeValues = { + hasMore: !!searchAttributeValuesOpts.data?.attribute?.values?.pageInfo + ?.hasNextPage, + loading: !!searchAttributeValuesOpts.loading, + onFetchMore: loadMoreAttributeValues + }; + return ( <> @@ -512,6 +539,7 @@ export const ProductUpdate: React.FC = ({ id, params }) => { setChannelsData={setChannelsData} categories={categories} collections={collections} + attributeValues={attributeValues} channelsWithVariantsData={channelsWithVariantsData} defaultWeightUnit={shop?.defaultWeightUnit} disabled={disableFormSave} @@ -519,6 +547,7 @@ export const ProductUpdate: React.FC = ({ id, params }) => { errors={errors} fetchCategories={searchCategories} fetchCollections={searchCollections} + fetchAttributeValues={searchAttributeValues} limits={limitOpts.data?.shop.limits} saveButtonBarState={formTransitionState} media={data?.product?.media} @@ -574,7 +603,9 @@ export const ProductUpdate: React.FC = ({ id, params }) => { fetchMoreReferencePages={fetchMoreReferencePages} fetchReferenceProducts={searchProducts} fetchMoreReferenceProducts={fetchMoreReferenceProducts} + fetchMoreAttributeValues={fetchMoreAttributeValues} onCloseDialog={() => navigate(productUrl(id))} + onAttributeSelect={setSelectedAttribute} /> ({ id: attribute.id, - values: attribute.values.map(value => value.slug) + values: attribute.values.edges.map(value => value.node.slug) })) || [], product: product.id, sku: data.sku, diff --git a/src/searches/types/SearchAttributeValues.ts b/src/searches/types/SearchAttributeValues.ts new file mode 100644 index 000000000..324ff1279 --- /dev/null +++ b/src/searches/types/SearchAttributeValues.ts @@ -0,0 +1,60 @@ +/* tslint:disable */ +/* eslint-disable */ +// @generated +// This file was automatically generated and should not be edited. + +// ==================================================== +// GraphQL query operation: SearchAttributeValues +// ==================================================== + +export interface SearchAttributeValues_attribute_values_edges_node_file { + __typename: "File"; + url: string; + contentType: string | null; +} + +export interface SearchAttributeValues_attribute_values_edges_node { + __typename: "AttributeValue"; + id: string; + name: string | null; + slug: string | null; + file: SearchAttributeValues_attribute_values_edges_node_file | null; + reference: string | null; + richText: any | null; +} + +export interface SearchAttributeValues_attribute_values_edges { + __typename: "AttributeValueCountableEdge"; + node: SearchAttributeValues_attribute_values_edges_node; +} + +export interface SearchAttributeValues_attribute_values_pageInfo { + __typename: "PageInfo"; + endCursor: string | null; + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; +} + +export interface SearchAttributeValues_attribute_values { + __typename: "AttributeValueCountableConnection"; + edges: SearchAttributeValues_attribute_values_edges[]; + pageInfo: SearchAttributeValues_attribute_values_pageInfo; +} + +export interface SearchAttributeValues_attribute { + __typename: "Attribute"; + id: string; + values: SearchAttributeValues_attribute_values | null; +} + +export interface SearchAttributeValues { + attribute: SearchAttributeValues_attribute | null; +} + +export interface SearchAttributeValuesVariables { + id?: string | null; + after?: string | null; + first: number; + query: string; +} diff --git a/src/searches/useAttributeValueSearch.ts b/src/searches/useAttributeValueSearch.ts new file mode 100644 index 000000000..ef91ff656 --- /dev/null +++ b/src/searches/useAttributeValueSearch.ts @@ -0,0 +1,71 @@ +import { attributeValueFragment } from "@saleor/fragments/attributes"; +import { pageInfoFragment } from "@saleor/fragments/pageInfo"; +import makeSearch from "@saleor/hooks/makeSearch"; +import gql from "graphql-tag"; + +import { + SearchAttributeValues, + SearchAttributeValuesVariables +} from "./types/SearchAttributeValues"; + +export const searchAttributeValues = gql` + ${pageInfoFragment} + ${attributeValueFragment} + query SearchAttributeValues( + $id: ID + $after: String + $first: Int! + $query: String! + ) { + attribute(id: $id) { + id + values(after: $after, first: $first, filter: { search: $query }) { + edges { + node { + ...AttributeValueFragment + } + } + pageInfo { + ...PageInfoFragment + } + } + } + } +`; + +export default makeSearch< + SearchAttributeValues, + SearchAttributeValuesVariables +>(searchAttributeValues, result => { + if (result.data?.attribute.values.pageInfo.hasNextPage) { + result.loadMore( + (prev, next) => { + if ( + prev.attribute.values.pageInfo.endCursor === + next.attribute.values.pageInfo.endCursor + ) { + return prev; + } + + return { + ...prev, + attribute: { + ...prev.attribute, + values: { + ...prev.attribute.values, + edges: [ + ...prev.attribute.values.edges, + ...next.attribute.values.edges + ], + pageInfo: next.attribute.values.pageInfo + } + } + }; + }, + { + ...result.variables, + after: result.data.attribute.values.pageInfo.endCursor + } + ); + } +}); diff --git a/src/storybook/stories/products/ProductCreatePage.tsx b/src/storybook/stories/products/ProductCreatePage.tsx index ea866160e..e42f618f4 100644 --- a/src/storybook/stories/products/ProductCreatePage.tsx +++ b/src/storybook/stories/products/ProductCreatePage.tsx @@ -34,9 +34,11 @@ storiesOf("Views / Products / Create product", module) fetchCategories={() => undefined} fetchCollections={() => undefined} fetchProductTypes={() => undefined} + fetchAttributeValues={() => undefined} fetchMoreCategories={fetchMoreProps} fetchMoreCollections={fetchMoreProps} fetchMoreProductTypes={fetchMoreProps} + fetchMoreAttributeValues={fetchMoreProps} productTypes={productTypes} categories={[product.category]} onBack={() => undefined} @@ -50,9 +52,11 @@ storiesOf("Views / Products / Create product", module) weightUnit="kg" referencePages={[]} referenceProducts={[]} + attributeValues={[]} onAssignReferencesClick={() => undefined} onCloseDialog={() => undefined} onSelectProductType={() => undefined} + onAttributeSelect={() => undefined} /> )) .add("When loading", () => ( @@ -67,9 +71,11 @@ storiesOf("Views / Products / Create product", module) fetchCategories={() => undefined} fetchCollections={() => undefined} fetchProductTypes={() => undefined} + fetchAttributeValues={() => undefined} fetchMoreCategories={fetchMoreProps} fetchMoreCollections={fetchMoreProps} fetchMoreProductTypes={fetchMoreProps} + fetchMoreAttributeValues={fetchMoreProps} productTypes={productTypes} categories={[product.category]} onBack={() => undefined} @@ -83,9 +89,11 @@ storiesOf("Views / Products / Create product", module) weightUnit="kg" referencePages={[]} referenceProducts={[]} + attributeValues={[]} onAssignReferencesClick={() => undefined} onCloseDialog={() => undefined} onSelectProductType={() => undefined} + onAttributeSelect={() => undefined} /> )) .add("form errors", () => ( @@ -114,10 +122,12 @@ storiesOf("Views / Products / Create product", module) fetchCategories={() => undefined} fetchCollections={() => undefined} fetchProductTypes={() => undefined} + fetchAttributeValues={() => undefined} fetchMoreCategories={fetchMoreProps} fetchMoreCollections={fetchMoreProps} fetchMoreProductTypes={fetchMoreProps} selectedProductType={productTypeSearch} + fetchMoreAttributeValues={fetchMoreProps} productTypes={productTypes} categories={[product.category]} onBack={() => undefined} @@ -131,8 +141,10 @@ storiesOf("Views / Products / Create product", module) weightUnit="kg" referencePages={[]} referenceProducts={[]} + attributeValues={[]} onAssignReferencesClick={() => undefined} onCloseDialog={() => undefined} onSelectProductType={() => undefined} + onAttributeSelect={() => undefined} /> )); diff --git a/src/storybook/stories/products/ProductUpdatePage.tsx b/src/storybook/stories/products/ProductUpdatePage.tsx index 869040e31..35a3d24e6 100644 --- a/src/storybook/stories/products/ProductUpdatePage.tsx +++ b/src/storybook/stories/products/ProductUpdatePage.tsx @@ -47,8 +47,10 @@ const props: ProductUpdatePageProps = { errors: [], fetchCategories: () => undefined, fetchCollections: () => undefined, + fetchAttributeValues: () => undefined, fetchMoreCategories: fetchMoreProps, fetchMoreCollections: fetchMoreProps, + fetchMoreAttributeValues: fetchMoreProps, hasChannelChanged: false, header: product.name, media: product.media, @@ -68,6 +70,7 @@ const props: ProductUpdatePageProps = { onVariantsAdd: () => undefined, onWarehouseConfigure: () => undefined, openChannelsModal: () => undefined, + onAttributeSelect: () => undefined, placeholderImage, product, referencePages: [], @@ -76,7 +79,8 @@ const props: ProductUpdatePageProps = { selectedChannelId: "123", taxTypes, variants: product.variants, - warehouses: warehouseList + warehouses: warehouseList, + attributeValues: [] }; storiesOf("Views / Products / Product edit", module)