From 8deaf90cba7f877129daa3127101122c63b70e9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Correnson?= <loic.correnson@cea.fr>
Date: Thu, 8 Feb 2024 14:47:42 +0100
Subject: [PATCH] [dome/forms] fix filter reset

---
 ivette/src/dome/renderer/layout/forms.tsx | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/ivette/src/dome/renderer/layout/forms.tsx b/ivette/src/dome/renderer/layout/forms.tsx
index 11207982d72..25227ddcab2 100644
--- a/ivette/src/dome/renderer/layout/forms.tsx
+++ b/ivette/src/dome/renderer/layout/forms.tsx
@@ -211,7 +211,7 @@ export function useBuffer<A>(
       setBuffer(newValue);
       setBerror(newError);
       if (isReset && newValue !== value)
-        onChanged(newValue,newError,isReset);
+        onChanged(newValue, newError, isReset);
     }, [value, onChanged]);
 
   return {
@@ -359,6 +359,7 @@ export function useFilter<A, B>(
   const [localValue, setLocalValue] = React.useState(defaultValue);
   const [localError, setLocalError] = React.useState<FieldError>(undefined);
   const [dangling, setDangling] = React.useState(false);
+  const localReset = reset !== undefined ? input(reset) : undefined;
 
   const update = React.useCallback(
     (newValue: B, newError: FieldError, isReset: boolean) => {
@@ -378,17 +379,11 @@ export function useFilter<A, B>(
     }, [output, onChanged, setLocalValue, setLocalError],
   );
 
-  const ConvertedReset = ((val: A | undefined): B | undefined => {
-    if(typeof val === "undefined") return val;
-    try { return input(val); }
-    catch { return undefined; }
-  })(reset);
-
   if (dangling) {
     return {
       value: localValue,
       error: localError,
-      reset: ConvertedReset,
+      reset: localReset,
       onChanged: update
     };
   }
@@ -396,14 +391,14 @@ export function useFilter<A, B>(
     return {
       value: input(value),
       error,
-      reset: ConvertedReset,
+      reset: localReset,
       onChanged: update
     };
   } catch (err) {
     return {
       value: localValue,
       error: err ? `${err}` : 'Invalid input',
-      reset: ConvertedReset,
+      reset: localReset,
       onChanged: update
     };
   }
-- 
GitLab