From f3a0c492375164fae78fecd9d36f5bb01143bfb5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr>
Date: Mon, 9 Dec 2024 09:30:04 +0100
Subject: [PATCH] [ivette] pritect trigger callbacks

---
 ivette/src/frama-c/states.ts | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/ivette/src/frama-c/states.ts b/ivette/src/frama-c/states.ts
index ba94955be54..c5556718411 100644
--- a/ivette/src/frama-c/states.ts
+++ b/ivette/src/frama-c/states.ts
@@ -91,8 +91,7 @@ export function useRequestStatus<Kd extends Server.RqKind, In, Out>(
   const updateError = Dome.useProtected(setError);
 
   // Fetch Request
-  const trigger: () => void =
-    React.useCallback(
+  const trigger = Dome.useProtected<void>(
       async function (): Promise<void> {
         updateError(undefined);
         updateResponse(undefined);
@@ -112,7 +111,18 @@ export function useRequestStatus<Kd extends Server.RqKind, In, Out>(
         } finally {
           killer.current = NOP;
         }
-      }, [ rq, prm, updateStable, updateResponse, updateError ]);
+      }
+  );
+
+  // Use Fallback
+  const fallback = Dome.useProtected<void>(
+    (): void => {
+      setResponse(undefined);
+      setStable(rq.fallback);
+      setError(undefined);
+      killer.current = NOP;
+    }
+  );
 
   // Server & Cache Management
   const running = Server.isRunningStatus(Server.useStatus());
@@ -121,12 +131,9 @@ export function useRequestStatus<Kd extends Server.RqKind, In, Out>(
     if (cached !== null) {
       trigger();
     } else {
-      setResponse(undefined);
-      setStable(rq.fallback);
-      setError(undefined);
-      killer.current = NOP;
+      fallback();
     }
-  }, [rq, trigger, cached] );
+  }, [cached, trigger, fallback] );
 
   // Signal Management
   const rqsignals = rq.signals.concat(signals);
-- 
GitLab