AdminPanelProvider.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Providers\Filament;
  3. use App\Filament\Pages\KnowledgePoints;
  4. use App\Filament\Pages\QuestionManagement;
  5. use App\Filament\Pages\PromptManagement;
  6. use App\Filament\Pages\StudentDashboard;
  7. use App\Filament\Pages\StudentManagement;
  8. use App\Filament\Pages\StudentKnowledgeGraphPage;
  9. use Filament\Http\Middleware\Authenticate;
  10. use Filament\Http\Middleware\AuthenticateSession;
  11. use Filament\Http\Middleware\DisableBladeIconComponents;
  12. use Filament\Http\Middleware\DispatchServingFilamentEvent;
  13. use Filament\Pages\Dashboard;
  14. use Filament\Panel;
  15. use Filament\PanelProvider;
  16. use App\Filament\Auth\Pages\CustomLogin;
  17. use Filament\Support\Colors\Color;
  18. use Filament\Widgets\AccountWidget;
  19. use Filament\Widgets\FilamentInfoWidget;
  20. use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
  21. use Illuminate\Cookie\Middleware\EncryptCookies;
  22. use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
  23. use Illuminate\Routing\Middleware\SubstituteBindings;
  24. use Illuminate\Session\Middleware\StartSession;
  25. use Illuminate\View\Middleware\ShareErrorsFromSession;
  26. class AdminPanelProvider extends PanelProvider
  27. {
  28. public function panel(Panel $panel): Panel
  29. {
  30. return $panel
  31. ->default()
  32. ->id('admin')
  33. ->path('admin')
  34. ->login(CustomLogin::class)
  35. ->colors([
  36. 'primary' => Color::hex('#4163ff'),
  37. ])
  38. ->defaultAvatarProvider(\App\Providers\Filament\AvatarProviders\DiceBearAvatarProvider::class)
  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. Dashboard::class,
  43. StudentManagement::class,
  44. StudentDashboard::class,
  45. StudentKnowledgeGraphPage::class,
  46. KnowledgePoints::class,
  47. QuestionManagement::class,
  48. PromptManagement::class,
  49. ])
  50. ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
  51. ->widgets([
  52. AccountWidget::class,
  53. FilamentInfoWidget::class,
  54. ])
  55. ->renderHook('panels::head.end', fn (): string =>
  56. view('filament.layout.vite-styles')->render() . view('filament.layout.vite-scripts')->render()
  57. )
  58. ->renderHook('global::head.start', fn (): string => view('filament.layout.vite-styles')->render())
  59. ->renderHook('panels::body.end', fn (): string => view('filament.layout.math-renderer')->render())
  60. ->middleware([
  61. EncryptCookies::class,
  62. AddQueuedCookiesToResponse::class,
  63. StartSession::class,
  64. AuthenticateSession::class,
  65. ShareErrorsFromSession::class,
  66. VerifyCsrfToken::class,
  67. SubstituteBindings::class,
  68. DisableBladeIconComponents::class,
  69. DispatchServingFilamentEvent::class,
  70. ])
  71. ->authMiddleware([
  72. Authenticate::class,
  73. ]);
  74. }
  75. }