From ee3cf9580ee548960ba0e7c2568276b9c6755611 Mon Sep 17 00:00:00 2001 From: Nikita Skalkin Date: Fri, 26 Jan 2024 13:47:28 +0100 Subject: [PATCH] fix: add saved search preview label for dimensionRange attribute --- _schemaV2.graphql | 1 + .../previewSavedSearch/previewSavedSearch.ts | 3 +++ .../previewSavedSearch/searchCriteriaLabel.ts | 24 +++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/_schemaV2.graphql b/_schemaV2.graphql index e923c438d0..51ba94f338 100644 --- a/_schemaV2.graphql +++ b/_schemaV2.graphql @@ -14750,6 +14750,7 @@ input PreviewSavedSearchAttributes { atAuction: Boolean attributionClass: [String] colors: [String] + dimensionRange: String height: String inquireableOnly: Boolean locationCities: [String] diff --git a/src/schema/v2/previewSavedSearch/previewSavedSearch.ts b/src/schema/v2/previewSavedSearch/previewSavedSearch.ts index 6b06e0d660..2211a161ac 100644 --- a/src/schema/v2/previewSavedSearch/previewSavedSearch.ts +++ b/src/schema/v2/previewSavedSearch/previewSavedSearch.ts @@ -42,6 +42,9 @@ const previewSavedSearchArgs: GraphQLFieldConfigArgumentMap = { colors: { type: new GraphQLList(GraphQLString), }, + dimensionRange: { + type: GraphQLString, + }, height: { type: GraphQLString, }, diff --git a/src/schema/v2/previewSavedSearch/searchCriteriaLabel.ts b/src/schema/v2/previewSavedSearch/searchCriteriaLabel.ts index 90caf40ece..24ca9c8541 100644 --- a/src/schema/v2/previewSavedSearch/searchCriteriaLabel.ts +++ b/src/schema/v2/previewSavedSearch/searchCriteriaLabel.ts @@ -9,6 +9,12 @@ import { round } from "lodash" import gql from "lib/gql" import { DEFAULT_LENGTH_UNIT_PREFERENCE, camelCaseKeys } from "lib/helpers" +export const DIMENSION_RANGES = { + "*-16.0": "SMALL", + "16.0-40.0": "MEDIUM", + "40.0-*": "LARGE", +} + export const SIZES_IN_CM = { SMALL: "Small (under 40cm)", MEDIUM: "Medium (40 – 100cm)", @@ -95,6 +101,7 @@ export const resolveSearchCriteriaLabels = async ( artistSeriesIDs, attributionClass, additionalGeneIDs, + dimensionRange, priceRange, sizes, width, @@ -127,6 +134,7 @@ export const resolveSearchCriteriaLabels = async ( labels.push(getMediumLabels(additionalGeneIDs)) labels.push(getPriceLabel(priceRange)) labels.push(getSizeLabels(sizes, metric)) + labels.push(getDimensionRangeLabel(dimensionRange, metric)) labels.push(getCustomSizeLabels({ height, metric, width })) labels.push( getWaysToBuyLabels({ @@ -251,6 +259,22 @@ function getSizeLabels(sizes: string[], metric) { }) } +const getDimensionRangeLabel = (dimensionRange: string, metric: string) => { + if (!dimensionRange) return + + const dimensionRangeValue = DIMENSION_RANGES[dimensionRange] + + return { + name: "Size", // Or should this be "Dimension range"? + displayValue: + metric === "cm" + ? SIZES_IN_CM[dimensionRangeValue] + : SIZES_IN_INCHES[dimensionRangeValue], + value: dimensionRange, + field: "dimensionRange", + } +} + const convertToCentimeters = (element: number) => { return Math.round(element * ONE_IN_TO_CM) }