From 42fafcba09ad27e1265bfcdf3ac183327ef3b7e2 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 9 Jul 2026 17:26:32 +0000 Subject: [PATCH 1/2] fix: repair stale Filament v5 auth translation keys on Login page Filament v5 extracted the auth pages into the filament/auth package and moved the login translations from `filament-panels::pages/auth/login.*` to `filament-panels::auth/pages/login.*`. The custom Login page still referenced the old keys, so the login form rendered raw translation keys (e.g. `filament-panels::pages/auth/login.form.email.label`). - Drop the explicit email/password `->label()` overrides so the fields fall back to Filament's translated labels. - Repoint the rate-limit throttle notification title/body to the new `auth/pages/login` namespace path. Restores the repair originally made on fix/repair-stale-filament-translations (commits 4e69878, 6f3b944), which was never merged into develop, and also fixes the throttle body key that the original repair left on the old path. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_011MrHa717dy6aoU6Z67iWG2 --- Modules/Core/Filament/Pages/Auth/Login.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Modules/Core/Filament/Pages/Auth/Login.php b/Modules/Core/Filament/Pages/Auth/Login.php index 874575831..e154d65b7 100644 --- a/Modules/Core/Filament/Pages/Auth/Login.php +++ b/Modules/Core/Filament/Pages/Auth/Login.php @@ -18,11 +18,11 @@ public function authenticate(): ?LoginResponse $this->rateLimit(5); } catch (TooManyRequestsException $exception) { Notification::make() - ->title(trans('filament-panels::pages/auth/login.notifications.throttled.title', [ + ->title(trans('filament-panels::auth/pages/login.notifications.throttled.title', [ 'seconds' => $exception->secondsUntilAvailable, 'minutes' => ceil($exception->secondsUntilAvailable / 60), ])) - ->body(array_key_exists('body', trans('filament-panels::pages/auth/login.notifications.throttled') ?: []) ? trans('filament-panels::pages/auth/login.notifications.throttled.body', [ + ->body(array_key_exists('body', trans('filament-panels::auth/pages/login.notifications.throttled') ?: []) ? trans('filament-panels::auth/pages/login.notifications.throttled.body', [ 'seconds' => $exception->secondsUntilAvailable, 'minutes' => ceil($exception->secondsUntilAvailable / 60), ]) : null) @@ -62,7 +62,6 @@ public function authenticate(): ?LoginResponse protected function getEmailFormComponent(): Component { return TextInput::make('email') - ->label(trans('filament-panels::pages/auth/login.form.email.label')) ->email() ->required() ->autocomplete() @@ -73,7 +72,6 @@ protected function getEmailFormComponent(): Component protected function getPasswordFormComponent(): Component { return TextInput::make('password') - ->label(trans('filament-panels::pages/auth/login.form.password.label')) ->password() ->revealable(filament()->arePasswordsRevealable()) ->autocomplete('current-password') From 84602671af11221e32a9e5e29d52fc5dd7f64bff Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 9 Jul 2026 17:50:58 +0000 Subject: [PATCH 2/2] refactor: delegate login throttle notification to Filament's built-in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of hand-building the rate-limit notification with hardcoded `filament-panels::...login.notifications.throttled.*` translation keys — the very keys that broke on the v4 -> v5 upgrade — delegate to the base Login page's getRateLimitedNotification(). Filament resolves the correct keys for whatever version is installed, so this notification no longer breaks when Filament reshuffles its translation namespaces. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_011MrHa717dy6aoU6Z67iWG2 --- Modules/Core/Filament/Pages/Auth/Login.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Modules/Core/Filament/Pages/Auth/Login.php b/Modules/Core/Filament/Pages/Auth/Login.php index e154d65b7..59852181c 100644 --- a/Modules/Core/Filament/Pages/Auth/Login.php +++ b/Modules/Core/Filament/Pages/Auth/Login.php @@ -17,17 +17,7 @@ public function authenticate(): ?LoginResponse try { $this->rateLimit(5); } catch (TooManyRequestsException $exception) { - Notification::make() - ->title(trans('filament-panels::auth/pages/login.notifications.throttled.title', [ - 'seconds' => $exception->secondsUntilAvailable, - 'minutes' => ceil($exception->secondsUntilAvailable / 60), - ])) - ->body(array_key_exists('body', trans('filament-panels::auth/pages/login.notifications.throttled') ?: []) ? trans('filament-panels::auth/pages/login.notifications.throttled.body', [ - 'seconds' => $exception->secondsUntilAvailable, - 'minutes' => ceil($exception->secondsUntilAvailable / 60), - ]) : null) - ->danger() - ->send(); + $this->getRateLimitedNotification($exception)?->send(); return null; }