@trackunit/filters-graphql-hook 1.20.0 → 1.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -183,6 +183,25 @@ const positiveValueBooleanOrNull = (input) => {
183
183
  }
184
184
  return null;
185
185
  };
186
+ /**
187
+ * Converts activeFilter BooleanValue to GraphQL format.
188
+ * Maps tri-state: true → true, false → false, undefined → null
189
+ * This preserves the contract where "show all" maps to null (not undefined).
190
+ */
191
+ const activeFilterToGraphQL = (input) => {
192
+ if (hasBooleanValue(input)) {
193
+ if (input.booleanValue === true) {
194
+ return true;
195
+ }
196
+ if (input.booleanValue === false) {
197
+ return false;
198
+ }
199
+ // booleanValue is undefined - "show all" state
200
+ return null;
201
+ }
202
+ // input is missing/undefined - "show all" state
203
+ return null;
204
+ };
186
205
  const geoJsonSimplifiedPolygonSchema = zod.z.strictObject({
187
206
  type: zod.z.literal("Polygon"),
188
207
  coordinates: zod.z.array(zod.z.array(zod.z.tuple([zod.z.number(), zod.z.number()]))),
@@ -473,7 +492,7 @@ const useActiveAssetFilters = (filters) => {
473
492
  systemOfMeasurement: systemOfMeasurement,
474
493
  customerIds: valueNameArrayOrUndefined(filters.customerIds),
475
494
  telematicsDeviceIsConnected: valueBooleanOrUndefined(filters.telematicsConnected),
476
- activeFilter: positiveValueBooleanOrNull(filters.activeFilter),
495
+ activeFilter: activeFilterToGraphQL(filters.activeFilter),
477
496
  owningDepotSiteIds: valueNameArrayOrUndefined(filters.siteDepotOwnershipIds),
478
497
  fleetHealthTypes: fixTypes(valueNameArrayOrUndefined(filters.fleetHealthTypes), fleetDataHealthIssueType),
479
498
  fleetHealthCategories: fixTypes(valueNameArrayOrUndefined(filters.fleetHealthCategories), fleetDataHealthIssueCategory),
@@ -593,6 +612,7 @@ const useAssetQueryFilters = (props) => {
593
612
  setupLibraryTranslations();
594
613
 
595
614
  exports.CustomFieldPrefix = CustomFieldPrefix;
615
+ exports.activeFilterToGraphQL = activeFilterToGraphQL;
596
616
  exports.booleanValueToArray = booleanValueToArray;
597
617
  exports.convertToAssetSortInput = convertToAssetSortInput;
598
618
  exports.fixType = fixType;
package/index.esm.js CHANGED
@@ -181,6 +181,25 @@ const positiveValueBooleanOrNull = (input) => {
181
181
  }
182
182
  return null;
183
183
  };
184
+ /**
185
+ * Converts activeFilter BooleanValue to GraphQL format.
186
+ * Maps tri-state: true → true, false → false, undefined → null
187
+ * This preserves the contract where "show all" maps to null (not undefined).
188
+ */
189
+ const activeFilterToGraphQL = (input) => {
190
+ if (hasBooleanValue(input)) {
191
+ if (input.booleanValue === true) {
192
+ return true;
193
+ }
194
+ if (input.booleanValue === false) {
195
+ return false;
196
+ }
197
+ // booleanValue is undefined - "show all" state
198
+ return null;
199
+ }
200
+ // input is missing/undefined - "show all" state
201
+ return null;
202
+ };
184
203
  const geoJsonSimplifiedPolygonSchema = z.strictObject({
185
204
  type: z.literal("Polygon"),
186
205
  coordinates: z.array(z.array(z.tuple([z.number(), z.number()]))),
@@ -471,7 +490,7 @@ const useActiveAssetFilters = (filters) => {
471
490
  systemOfMeasurement: systemOfMeasurement,
472
491
  customerIds: valueNameArrayOrUndefined(filters.customerIds),
473
492
  telematicsDeviceIsConnected: valueBooleanOrUndefined(filters.telematicsConnected),
474
- activeFilter: positiveValueBooleanOrNull(filters.activeFilter),
493
+ activeFilter: activeFilterToGraphQL(filters.activeFilter),
475
494
  owningDepotSiteIds: valueNameArrayOrUndefined(filters.siteDepotOwnershipIds),
476
495
  fleetHealthTypes: fixTypes(valueNameArrayOrUndefined(filters.fleetHealthTypes), fleetDataHealthIssueType),
477
496
  fleetHealthCategories: fixTypes(valueNameArrayOrUndefined(filters.fleetHealthCategories), fleetDataHealthIssueCategory),
@@ -590,4 +609,4 @@ const useAssetQueryFilters = (props) => {
590
609
  */
591
610
  setupLibraryTranslations();
592
611
 
593
- export { CustomFieldPrefix, booleanValueToArray, convertToAssetSortInput, fixType, fixTypes, geoJsonSimplifiedPolygonSchema, isStringArrayValue, isValueName, isValueNameArray, minMaxFilterValueToAggregatedNumberRange, minMaxFilterValueToArray, minMaxFilterValueToNumberRange, positiveValueBooleanOrNull, stringArrayOrUndefined, useActiveAssetFilters, useAssetQueryFilters, useAssetSortInput, useCustomFieldFilters, valueBooleanOrUndefined, valueNameArrayOrUndefined, valueNameBooleanToArray, valueNameOrUndefined, valuesIfNotEmpty };
612
+ export { CustomFieldPrefix, activeFilterToGraphQL, booleanValueToArray, convertToAssetSortInput, fixType, fixTypes, geoJsonSimplifiedPolygonSchema, isStringArrayValue, isValueName, isValueNameArray, minMaxFilterValueToAggregatedNumberRange, minMaxFilterValueToArray, minMaxFilterValueToNumberRange, positiveValueBooleanOrNull, stringArrayOrUndefined, useActiveAssetFilters, useAssetQueryFilters, useAssetSortInput, useCustomFieldFilters, valueBooleanOrUndefined, valueNameArrayOrUndefined, valueNameBooleanToArray, valueNameOrUndefined, valuesIfNotEmpty };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/filters-graphql-hook",
3
- "version": "1.20.0",
3
+ "version": "1.20.1",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
package/src/fixTypes.d.ts CHANGED
@@ -53,6 +53,12 @@ export declare const valueBooleanOrUndefined: (input: unknown) => boolean | unde
53
53
  *
54
54
  */
55
55
  export declare const positiveValueBooleanOrNull: (input: unknown) => boolean | null;
56
+ /**
57
+ * Converts activeFilter BooleanValue to GraphQL format.
58
+ * Maps tri-state: true → true, false → false, undefined → null
59
+ * This preserves the contract where "show all" maps to null (not undefined).
60
+ */
61
+ export declare const activeFilterToGraphQL: (input: unknown) => boolean | null;
56
62
  export declare const geoJsonSimplifiedPolygonSchema: z.ZodObject<{
57
63
  type: z.ZodLiteral<"Polygon">;
58
64
  coordinates: z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, "many">;