You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UserPanelProvider.php 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Providers\Filament;
  3. use App\Http\Middleware\Authenticate;
  4. use Filament\Http\Middleware\DisableBladeIconComponents;
  5. use Filament\Http\Middleware\DispatchServingFilamentEvent;
  6. use Filament\Navigation\MenuItem;
  7. use Filament\Navigation\NavigationItem;
  8. use Filament\Pages;
  9. use Filament\Panel;
  10. use Filament\PanelProvider;
  11. use Filament\Support\Colors\Color;
  12. use Filament\Widgets;
  13. use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
  14. use Illuminate\Cookie\Middleware\EncryptCookies;
  15. use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
  16. use Illuminate\Routing\Middleware\SubstituteBindings;
  17. use Illuminate\Session\Middleware\AuthenticateSession;
  18. use Illuminate\Session\Middleware\StartSession;
  19. use Illuminate\View\Middleware\ShareErrorsFromSession;
  20. use Wallo\FilamentCompanies\Pages\User\PersonalAccessTokens;
  21. use Wallo\FilamentCompanies\Pages\User\Profile;
  22. class UserPanelProvider extends PanelProvider
  23. {
  24. public function panel(Panel $panel): Panel
  25. {
  26. return $panel
  27. ->id('user')
  28. ->path('user')
  29. ->userMenuItems([
  30. 'profile' => MenuItem::make()
  31. ->label('Profile')
  32. ->icon('heroicon-o-user-circle')
  33. ->url(static fn () => url(Profile::getUrl())),
  34. ])
  35. ->navigationItems([
  36. NavigationItem::make('Personal Access Tokens')
  37. ->label(static fn (): string => __('filament-companies::default.navigation.links.tokens'))
  38. ->icon('heroicon-o-key')
  39. ->url(static fn () => url(PersonalAccessTokens::getUrl())),
  40. ])
  41. ->colors([
  42. 'primary' => Color::Indigo,
  43. ])
  44. ->viteTheme('resources/css/filament/user/theme.css')
  45. ->discoverResources(in: app_path('Filament/User/Resources'), for: 'App\\Filament\\User\\Resources')
  46. ->discoverPages(in: app_path('Filament/User/Pages'), for: 'App\\Filament\\User\\Pages')
  47. ->pages([
  48. Pages\Dashboard::class,
  49. Profile::class,
  50. PersonalAccessTokens::class,
  51. ])
  52. ->discoverWidgets(in: app_path('Filament/User/Widgets'), for: 'App\\Filament\\User\\Widgets')
  53. ->widgets([
  54. Widgets\AccountWidget::class,
  55. Widgets\FilamentInfoWidget::class,
  56. ])
  57. ->middleware([
  58. EncryptCookies::class,
  59. AddQueuedCookiesToResponse::class,
  60. StartSession::class,
  61. AuthenticateSession::class,
  62. ShareErrorsFromSession::class,
  63. VerifyCsrfToken::class,
  64. SubstituteBindings::class,
  65. DisableBladeIconComponents::class,
  66. DispatchServingFilamentEvent::class,
  67. ])
  68. ->authMiddleware([
  69. Authenticate::class,
  70. ]);
  71. }
  72. }