From ddd9b184aae3e8da08131ddf745db2e270863cff Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Wed, 18 Feb 2026 22:03:48 +0200 Subject: [PATCH] Fix SendouForm not scrolling to errors from server --- app/form/SendouForm.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/form/SendouForm.tsx b/app/form/SendouForm.tsx index fd936b9f2..c23e8ed75 100644 --- a/app/form/SendouForm.tsx +++ b/app/form/SendouForm.tsx @@ -130,14 +130,27 @@ export function SendouForm({ React.useLayoutEffect(() => { const serverFieldErrors = fetcher.data?.fieldErrors ?? {}; - for (const [fieldName, errorMessage] of Object.entries(serverFieldErrors)) { + const errorEntries = Object.entries(serverFieldErrors); + if (errorEntries.length === 0) { + setFallbackError(null); + return; + } + + for (const [fieldName, errorMessage] of errorEntries) { const errorElement = document.getElementById(errorMessageId(fieldName)); if (!errorElement) { setFallbackError(`${t(errorMessage as never)} (${fieldName})`); return; } } + setFallbackError(null); + + const firstErrorField = errorEntries[0][0]; + const firstErrorElement = document.getElementById( + errorMessageId(firstErrorField), + ); + firstErrorElement?.scrollIntoView({ behavior: "smooth", block: "center" }); }, [fetcher.data, t]); const serverErrors = visibleServerErrors as Partial<