diff --git a/src/actions/measurements.ts b/src/actions/measurements.ts index 5a1591986..774527063 100644 --- a/src/actions/measurements.ts +++ b/src/actions/measurements.ts @@ -16,6 +16,8 @@ import { Collection, isCollection, isMeasurement, + isMeasurementsDisplay, + measurementsDisplayValues, Measurement, MeasurementsDisplay, MeasurementsJson, @@ -111,9 +113,8 @@ function getCollectionDefaultControl( break; } case 'measurementsDisplay': { - const expectedValues = ["mean", "raw"]; - if (defaultControl !== undefined && !expectedValues.includes(defaultControl)) { - console.error(`Ignoring invalid ${displayDefaultKey} value ${defaultControl}, must be one of ${expectedValues}`) + if (defaultControl !== undefined && isMeasurementsDisplay(defaultControl)) { + console.error(`Ignoring invalid ${displayDefaultKey} value ${defaultControl}, must be one of ${measurementsDisplayValues}`) defaultControl = undefined; } break; @@ -648,7 +649,7 @@ export const combineMeasurementsControlsAndQuery = ( let newControlState = undefined; switch(queryKey) { case "m_display": - if (queryValue === "mean" || queryValue === "raw") { + if (isMeasurementsDisplay(queryValue)) { newControlState = queryValue; } break; diff --git a/src/reducers/measurements/types.ts b/src/reducers/measurements/types.ts index 1811a19b0..722c1e559 100644 --- a/src/reducers/measurements/types.ts +++ b/src/reducers/measurements/types.ts @@ -8,7 +8,10 @@ import { measurementIdSymbol } from "../../util/globals"; * */ type MeasurementMetadata = string | number | boolean -export type MeasurementsDisplay = 'raw' | 'mean' + +export const measurementsDisplayValues = ["raw", "mean"]; +export type MeasurementsDisplay = (typeof measurementsDisplayValues)[number] +export const isMeasurementsDisplay = (x: any): x is MeasurementsDisplay => measurementsDisplayValues.includes(x); interface JsonMeasurement { readonly strain: string