From 81fe0cc47c60796e167c0044eda550c9f215493c Mon Sep 17 00:00:00 2001 From: Dima Udod Date: Thu, 28 Nov 2024 10:58:43 +0200 Subject: [PATCH 1/2] Convert the CheckTranslationsCommand to use the new Laravel command components & Laravel Prompts --- .../src/Commands/CheckTranslationsCommand.php | 37 +++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/packages/support/src/Commands/CheckTranslationsCommand.php b/packages/support/src/Commands/CheckTranslationsCommand.php index 58016f223fe..dcd0273e493 100644 --- a/packages/support/src/Commands/CheckTranslationsCommand.php +++ b/packages/support/src/Commands/CheckTranslationsCommand.php @@ -3,6 +3,7 @@ namespace Filament\Support\Commands; use Illuminate\Console\Command; +use Illuminate\Contracts\Console\PromptsForMissingInput; use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -10,9 +11,12 @@ use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Exception\InvalidOptionException; use Symfony\Component\Finder\SplFileInfo; +use function Laravel\Prompts\info; +use function Laravel\Prompts\table; +use function Laravel\Prompts\warning; #[AsCommand(name: 'filament:check-translations')] -class CheckTranslationsCommand extends Command +class CheckTranslationsCommand extends Command implements PromptsForMissingInput { protected $signature = 'filament:check-translations {locales* : The locales to check.} @@ -71,29 +75,21 @@ protected function scan(string $package): void $path = implode(DIRECTORY_SEPARATOR, [$localeRootDirectory, $locale]); if ($missingFiles->count() > 0 && $removedFiles->count() > 0) { - $this->warn("[!] Package filament/{$package} has {$missingFiles->count()} missing translation " . Str::plural('file', $missingFiles->count()) . " and {$removedFiles->count()} removed translation " . Str::plural('file', $missingFiles->count()) . ' for ' . locale_get_display_name($locale, 'en') . ".\n"); - - $this->newLine(); + warning("[!] Package filament/{$package} has {$missingFiles->count()} missing translation " . Str::plural('file', $missingFiles->count()) . " and {$removedFiles->count()} removed translation " . Str::plural('file', $missingFiles->count()) . ' for ' . locale_get_display_name($locale, 'en') . ".\n"); } elseif ($missingFiles->count() > 0) { - $this->warn("[!] Package filament/{$package} has {$missingFiles->count()} missing translation " . Str::plural('file', $missingFiles->count()) . ' for ' . locale_get_display_name($locale, 'en') . ".\n"); - - $this->newLine(); + warning("[!] Package filament/{$package} has {$missingFiles->count()} missing translation " . Str::plural('file', $missingFiles->count()) . ' for ' . locale_get_display_name($locale, 'en') . ".\n"); } elseif ($removedFiles->count() > 0) { - $this->warn("[!] Package filament/{$package} has {$removedFiles->count()} removed translation " . Str::plural('file', $removedFiles->count()) . ' for ' . locale_get_display_name($locale, 'en') . ".\n"); - - $this->newLine(); + warning("[!] Package filament/{$package} has {$removedFiles->count()} removed translation " . Str::plural('file', $removedFiles->count()) . ' for ' . locale_get_display_name($locale, 'en') . ".\n"); } if ($missingFiles->count() > 0 || $removedFiles->count() > 0) { - $this->table( + table( [$path, ''], array_merge( array_map(fn (string $file): array => [$file, 'Missing'], $missingFiles->toArray()), array_map(fn (string $file): array => [$file, 'Removed'], $removedFiles->toArray()), ), ); - - $this->newLine(); } collect($files) @@ -124,29 +120,24 @@ protected function scan(string $package): void $locale = locale_get_display_name($locale, 'en'); if ($missingKeysCount == 0 && $removedKeysCount == 0) { - $this->info("[✓] Package filament/{$package} has no missing or removed translation keys for {$locale}!\n"); - - $this->newLine(); + info("[✓] Package filament/{$package} has no missing or removed translation keys for {$locale}!\n"); } elseif ($missingKeysCount > 0 && $removedKeysCount > 0) { - $this->warn("[!] Package filament/{$package} has {$missingKeysCount} missing translation " . Str::plural('key', $missingKeysCount) . " and {$removedKeysCount} removed translation " . Str::plural('key', $removedKeysCount) . " for {$locale}.\n"); + warning("[!] Package filament/{$package} has {$missingKeysCount} missing translation " . Str::plural('key', $missingKeysCount) . " and {$removedKeysCount} removed translation " . Str::plural('key', $removedKeysCount) . " for {$locale}.\n"); } elseif ($missingKeysCount > 0) { - $this->warn("[!] Package filament/{$package} has {$missingKeysCount} missing translation " . Str::plural('key', $missingKeysCount) . " for {$locale}.\n"); + warning("[!] Package filament/{$package} has {$missingKeysCount} missing translation " . Str::plural('key', $missingKeysCount) . " for {$locale}.\n"); } elseif ($removedKeysCount > 0) { - $this->warn("[!] Package filament/{$package} has {$removedKeysCount} removed translation " . Str::plural('key', $removedKeysCount) . " for {$locale}.\n"); + warning("[!] Package filament/{$package} has {$removedKeysCount} removed translation " . Str::plural('key', $removedKeysCount) . " for {$locale}.\n"); } }) ->filter(static fn ($keys): bool => count($keys['missing']) || count($keys['removed'])) ->each(function ($keys, string $file) { - $this->table( + table( [$file, ''], [ ...array_map(fn (string $key): array => [$key, 'Missing'], $keys['missing']), ...array_map(fn (string $key): array => [$key, 'Removed'], $keys['removed']), ], - 'box', ); - - $this->newLine(); }); }); } From b73e0380db6bed0deee50edd447414ddef2e25ba Mon Sep 17 00:00:00 2001 From: Dima Udod Date: Thu, 28 Nov 2024 11:03:16 +0200 Subject: [PATCH 2/2] Codefixes --- docs-assets/app/app/Exceptions/Handler.php | 5 +++-- .../app/app/Http/Middleware/RedirectIfAuthenticated.php | 2 +- packages/infolists/src/Concerns/InteractsWithInfolists.php | 3 +-- packages/support/src/Commands/CheckTranslationsCommand.php | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs-assets/app/app/Exceptions/Handler.php b/docs-assets/app/app/Exceptions/Handler.php index b1c262c6d55..56c7afdb962 100644 --- a/docs-assets/app/app/Exceptions/Handler.php +++ b/docs-assets/app/app/Exceptions/Handler.php @@ -3,6 +3,7 @@ namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; +use Psr\Log\LogLevel; use Throwable; class Handler extends ExceptionHandler @@ -10,7 +11,7 @@ class Handler extends ExceptionHandler /** * A list of exception types with their corresponding custom log levels. * - * @var array, \Psr\Log\LogLevel::*> + * @var array, LogLevel::*> */ protected $levels = [ // @@ -19,7 +20,7 @@ class Handler extends ExceptionHandler /** * A list of the exception types that are not reported. * - * @var array> + * @var array> */ protected $dontReport = [ // diff --git a/docs-assets/app/app/Http/Middleware/RedirectIfAuthenticated.php b/docs-assets/app/app/Http/Middleware/RedirectIfAuthenticated.php index afc78c4e539..b92e43f7ecb 100644 --- a/docs-assets/app/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/docs-assets/app/app/Http/Middleware/RedirectIfAuthenticated.php @@ -13,7 +13,7 @@ class RedirectIfAuthenticated /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next, string ...$guards): Response { diff --git a/packages/infolists/src/Concerns/InteractsWithInfolists.php b/packages/infolists/src/Concerns/InteractsWithInfolists.php index 4417c8f6888..a907b69312e 100644 --- a/packages/infolists/src/Concerns/InteractsWithInfolists.php +++ b/packages/infolists/src/Concerns/InteractsWithInfolists.php @@ -4,7 +4,6 @@ use Exception; use Filament\Actions\Contracts\HasActions; -use Filament\Forms; use Filament\Forms\Contracts\HasForms; use Filament\Forms\Form; use Filament\Infolists\Components\Actions\Action; @@ -350,7 +349,7 @@ protected function makeInfolist(): Infolist } /** - * @return array + * @return array */ protected function getInteractsWithInfolistsForms(): array { diff --git a/packages/support/src/Commands/CheckTranslationsCommand.php b/packages/support/src/Commands/CheckTranslationsCommand.php index dcd0273e493..a640822c5c6 100644 --- a/packages/support/src/Commands/CheckTranslationsCommand.php +++ b/packages/support/src/Commands/CheckTranslationsCommand.php @@ -11,6 +11,7 @@ use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Exception\InvalidOptionException; use Symfony\Component\Finder\SplFileInfo; + use function Laravel\Prompts\info; use function Laravel\Prompts\table; use function Laravel\Prompts\warning;