From 35a4d99d672545bf16d37c5d94a05cf6ff472982 Mon Sep 17 00:00:00 2001 From: Yumi Date: Mon, 7 Sep 2026 19:09:03 -0600 Subject: [PATCH] refactor(gui): stabilize model feedback callback dependencies Extracted and adapted from fork commit 4d36c9121c06ed1d7219b1bdf13d43f9d4792e43. Co-authored-by: Yumi --- assets/pr-screenshots/model-feedback-review.png | Bin 0 -> 21781 bytes gui/src/pages/Models.tsx | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 assets/pr-screenshots/model-feedback-review.png diff --git a/assets/pr-screenshots/model-feedback-review.png b/assets/pr-screenshots/model-feedback-review.png new file mode 100644 index 0000000000000000000000000000000000000000..91d05e806038140d4d07d0995dae359a9756a3c3 GIT binary patch literal 21781 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 Gmj3|<0^u(J literal 0 HcmV?d00001 diff --git a/gui/src/pages/Models.tsx b/gui/src/pages/Models.tsx index 55d9c16106..d14a81005d 100644 --- a/gui/src/pages/Models.tsx +++ b/gui/src/pages/Models.tsx @@ -302,11 +302,11 @@ export default function Models({ apiBase, restartEpoch = 0 }: { apiBase: string; // second identical value bails out of React's state diff, so the old timer would dismiss // the new toast early. Every publish bumps the generation. const [feedbackGen, setFeedbackGen] = useState(0); - const publishFeedback = (nextOk: boolean, message: string) => { + const publishFeedback = useCallback((nextOk: boolean, message: string) => { setOk(nextOk); setStatus(message); setFeedbackGen(g => g + 1); - }; + }, []); // Transient action feedback as a fixed toast: appearing or auto-clearing it never shifts // the workspace below (the old inline Notice pushed the whole model grid down by its // height on every apply). The timer itself just clears the status again. @@ -695,7 +695,7 @@ export default function Models({ apiBase, restartEpoch = 0 }: { apiBase: string; setDisplayNameSaving(false); } } - }, [apiBase, displayNameModel, displayNameRecovery, finishDisplayNameEdit, load, t]); + }, [apiBase, displayNameModel, displayNameRecovery, finishDisplayNameEdit, load, publishFeedback, t]); // Shadow/v2 controls must not wait on the models catalog (live discovery can be slow). useEffect(() => {