AdminPanelProvider.php 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Providers\Filament;
  3. use App\Filament\Pages\Auth\Login;
  4. use BezhanSalleh\FilamentShield\FilamentShieldPlugin;
  5. use Filament\Forms\Components\Radio;
  6. use Filament\Http\Middleware\Authenticate;
  7. use Filament\Http\Middleware\AuthenticateSession;
  8. use Filament\Http\Middleware\DisableBladeIconComponents;
  9. use Filament\Http\Middleware\DispatchServingFilamentEvent;
  10. use Filament\Pages;
  11. use Filament\Panel;
  12. use Filament\PanelProvider;
  13. use Filament\Support\Colors\Color;
  14. use Filament\Widgets;
  15. use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
  16. use Illuminate\Cookie\Middleware\EncryptCookies;
  17. use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
  18. use Illuminate\Routing\Middleware\SubstituteBindings;
  19. use Illuminate\Session\Middleware\StartSession;
  20. use Illuminate\View\Middleware\ShareErrorsFromSession;
  21. use Pboivin\FilamentPeek\FilamentPeekPlugin;
  22. use SolutionForest\FilamentTranslateField\FilamentTranslateFieldPlugin;
  23. class AdminPanelProvider extends PanelProvider
  24. {
  25. public function panel(Panel $panel): Panel
  26. {
  27. Radio::configureUsing(function (Radio $radio): void {
  28. $radio->inline()->inlineLabel(false);
  29. });
  30. return $panel
  31. ->default()
  32. ->id('admin')
  33. ->path('admin')
  34. ->login()
  35. ->colors([
  36. 'primary' => Color::Amber,
  37. ])
  38. ->databaseNotifications()
  39. ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources')
  40. ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
  41. ->pages([
  42. Pages\Dashboard::class,
  43. ])
  44. ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets')
  45. ->widgets([
  46. Widgets\AccountWidget::class,
  47. // Widgets\FilamentInfoWidget::class,
  48. ])
  49. ->middleware([
  50. EncryptCookies::class,
  51. AddQueuedCookiesToResponse::class,
  52. StartSession::class,
  53. AuthenticateSession::class,
  54. ShareErrorsFromSession::class,
  55. VerifyCsrfToken::class,
  56. SubstituteBindings::class,
  57. DisableBladeIconComponents::class,
  58. DispatchServingFilamentEvent::class,
  59. ])
  60. ->authMiddleware([
  61. Authenticate::class,
  62. ])->plugins([
  63. FilamentShieldPlugin::make(),
  64. FilamentTranslateFieldPlugin::make()
  65. ->defaultLocales(['zh_TW', "en"]),
  66. FilamentPeekPlugin::make(),
  67. ]);
  68. }
  69. }