From 992c36c6c7ce7e1e732866b3cd4fb8269a905875 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 18 Aug 2026 21:32:28 +0200 Subject: feat(web): add ride library filters --- web/frontend/ride-filters-logic.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 web/frontend/ride-filters-logic.ts (limited to 'web/frontend/ride-filters-logic.ts') diff --git a/web/frontend/ride-filters-logic.ts b/web/frontend/ride-filters-logic.ts new file mode 100644 index 0000000..f3593c1 --- /dev/null +++ b/web/frontend/ride-filters-logic.ts @@ -0,0 +1,15 @@ +export type RideFilterRangeFormat = "distance" | "duration" | "cotacol"; +export type RideFilterRangeHandle = "min" | "max"; + +export const formatRideFilterValue = (format: RideFilterRangeFormat, value: number): string => { + if (format === "distance") return `${value} km`; + if (format === "cotacol") return `${value} points`; + const hours = Math.floor(value / 60); + const minutes = value % 60; + return `${hours}h ${String(minutes).padStart(2, "0")}m`; +}; + +export const normalizeRideFilterRange = (min: number, max: number, changed: RideFilterRangeHandle): { min: number; max: number } => { + if (min <= max) return { min, max }; + return changed === "min" ? { min: max, max } : { min, max: min }; +}; -- cgit v1.2.3