From 8d2cfb7a69a80aff0f8cb5dc02a23cb7f72ad944 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2026 21:42:48 +0000 Subject: [PATCH] fix(web): prevent accessing null event.currentTarget in async handlers This commit fixes a runtime TypeError ("Cannot set properties of null") that occurs when trying to reset an ``'s value after an asynchronous upload process. `event.currentTarget` can become null asynchronously. The solution synchronously saves a reference to `event.target` before starting the asynchronous work, and uses that reference in the `finally` block to clear the input value. The identical fix is applied to both `website-builder.tsx` and `language-manager.tsx`. Co-authored-by: fdaei <81993335+fdaei@users.noreply.github.com> --- apps/web/src/features/admin/components/language-manager.tsx | 5 +++-- apps/web/src/features/admin/components/website-builder.tsx | 5 +++-- package-lock.json | 1 - 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/web/src/features/admin/components/language-manager.tsx b/apps/web/src/features/admin/components/language-manager.tsx index 47c2817..56b4a3b 100644 --- a/apps/web/src/features/admin/components/language-manager.tsx +++ b/apps/web/src/features/admin/components/language-manager.tsx @@ -329,7 +329,8 @@ export function LanguageManager() { className="hidden" disabled={imageUploading} onChange={async (event) => { - const file = event.target.files?.[0]; + const input = event.target; + const file = input.files?.[0]; if (!file) return; setImageUploading(true); setImageError(''); @@ -340,7 +341,7 @@ export function LanguageManager() { setImageError(uploadErrorMessage(error, fa ? 'آپلود تصویر انجام نشد.' : 'The image upload failed.')); } finally { setImageUploading(false); - event.currentTarget.value = ''; + input.value = ''; } }} /> diff --git a/apps/web/src/features/admin/components/website-builder.tsx b/apps/web/src/features/admin/components/website-builder.tsx index 2e9224b..7a221af 100644 --- a/apps/web/src/features/admin/components/website-builder.tsx +++ b/apps/web/src/features/admin/components/website-builder.tsx @@ -368,7 +368,8 @@ function MediaField({ label, value, fa, onChange }: { label: string; value: stri api<{ url: string }>(`/files/public/${id}`).then((result) => setPreview(result.url)).catch(() => setPreview('')); }, [value]); return
{label}
{preview ? :
} onChange(event.target.value)} placeholder="/images/..." />
; } diff --git a/package-lock.json b/package-lock.json index 8da2e62..4775c9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1053,7 +1053,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" }