From 2ed8fb386af3cfaf2aa8c1cde676166c8a1be10f Mon Sep 17 00:00:00 2001 From: cnathe Date: Tue, 3 Mar 2026 14:52:24 -0600 Subject: [PATCH 1/3] GitHub Issue #790: Update areUnitsCompatible to account for different "Count" unit labels - even though sample units might be of the same kind, make sure they are the same label in the "Count" case --- packages/components/releaseNotes/components.md | 4 ++++ .../components/src/internal/util/measurement.test.ts | 9 +++++++++ packages/components/src/internal/util/measurement.ts | 8 +++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index d1a361d5e3..77ad6b8d85 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,10 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version 7.21.TBD +*Released*: TBD +- GitHub Issue #790: Update areUnitsCompatible to account for different "Count" unit labels + ### version 7.21.0 *Released*: 26 February 2026 - Package updates diff --git a/packages/components/src/internal/util/measurement.test.ts b/packages/components/src/internal/util/measurement.test.ts index 3a5dd7b81b..f2fb898e3b 100644 --- a/packages/components/src/internal/util/measurement.test.ts +++ b/packages/components/src/internal/util/measurement.test.ts @@ -234,4 +234,13 @@ describe('areUnitsCompatible', () => { expect(areUnitsCompatible('mL', 'bogus')).toBeFalsy(); expect(areUnitsCompatible('kg', 'bogus')).toBeFalsy(); }); + + test('comparison of Count units with different labels but same kind', () => { + expect(areUnitsCompatible('count', 'count')).toBeTruthy(); + expect(areUnitsCompatible('blocks', 'blocks')).toBeTruthy(); + expect(areUnitsCompatible('boxes', 'cells')).toBeFalsy(); + expect(areUnitsCompatible('kits', 'packs')).toBeFalsy(); + expect(areUnitsCompatible('pieces', 'unit')).toBeFalsy(); + expect(areUnitsCompatible('unit', 'unit')).toBeTruthy(); + }); }); diff --git a/packages/components/src/internal/util/measurement.ts b/packages/components/src/internal/util/measurement.ts index 1807189cd2..dde5476d8f 100644 --- a/packages/components/src/internal/util/measurement.ts +++ b/packages/components/src/internal/util/measurement.ts @@ -222,7 +222,13 @@ export function areUnitsCompatible(unitAStr: string, unitBStr: string): boolean if (!unitA || !unitB) { return false; } - return unitA.kind === unitB.kind; + + // GitHub Issue #790: for "Count" kind, the specific label must also match + const matchingKinds = unitA.kind === unitB.kind; + if (matchingKinds && unitA.kind === UNITS_KIND.COUNT) { + return unitA.label === unitB.label; + } + return matchingKinds; } export function getMetricUnitOptions(metricUnit?: string, showLongLabel?: boolean): { label: string; value: string }[] { From 1cae025bc1a2e7eaf10f650505ddb5e34d2aec2e Mon Sep 17 00:00:00 2001 From: cnathe Date: Tue, 3 Mar 2026 14:52:54 -0600 Subject: [PATCH 2/3] 7.21.0-fb-checkInUnits790.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index abf3ee1b12..8531e4b6f9 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.21.0", + "version": "7.21.0-fb-checkInUnits790.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.0", + "version": "7.21.0-fb-checkInUnits790.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index ea78fad86f..646fb8937f 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.21.0", + "version": "7.21.0-fb-checkInUnits790.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 03765a603ade46861c16805d8df323f1e328d6b0 Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 5 Mar 2026 09:21:43 -0600 Subject: [PATCH 3/3] 7.21.1-fb-checkInUnits790.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 426ba96bca..ffaf82b286 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.21.1", + "version": "7.21.1-fb-checkInUnits790.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.21.1", + "version": "7.21.1-fb-checkInUnits790.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 9f71615f15..aa0f9a52cd 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.21.1", + "version": "7.21.1-fb-checkInUnits790.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [