From ada37916b1d35c7f4b6b9b290e9825217a461ed3 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Mon, 16 Mar 2026 12:16:11 +0100 Subject: [PATCH] feat(07-01): create useWeightUnit convenience hook - Wraps useSetting("weightUnit") with typed WeightUnit return - Validates stored value against known units (g, oz, lb, kg) - Defaults to "g" when no setting exists (backward compatible) - Fix config.json formatting (tabs per biome config) Co-Authored-By: Claude Opus 4.6 --- .planning/config.json | 2 +- src/client/hooks/useWeightUnit.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 src/client/hooks/useWeightUnit.ts diff --git a/.planning/config.json b/.planning/config.json index ffed394..4b9263b 100644 --- a/.planning/config.json +++ b/.planning/config.json @@ -5,7 +5,7 @@ "commit_docs": true, "model_profile": "quality", "workflow": { - "research": false, + "research": true, "plan_check": true, "verifier": true, "nyquist_validation": true, diff --git a/src/client/hooks/useWeightUnit.ts b/src/client/hooks/useWeightUnit.ts new file mode 100644 index 0000000..4cccf30 --- /dev/null +++ b/src/client/hooks/useWeightUnit.ts @@ -0,0 +1,12 @@ +import type { WeightUnit } from "../lib/formatters"; +import { useSetting } from "./useSettings"; + +const VALID_UNITS: WeightUnit[] = ["g", "oz", "lb", "kg"]; + +export function useWeightUnit(): WeightUnit { + const { data } = useSetting("weightUnit"); + if (data && VALID_UNITS.includes(data as WeightUnit)) { + return data as WeightUnit; + } + return "g"; +}