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

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