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.

ConnectedAccount.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Filament\Company\Pages\Service;
  3. use App\Services\PlaidService;
  4. use Filament\Actions\Action;
  5. use Filament\Navigation\NavigationItem;
  6. use Filament\Pages\Page;
  7. use Filament\Support\Enums\MaxWidth;
  8. use Illuminate\Contracts\Support\Htmlable;
  9. class ConnectedAccount extends Page
  10. {
  11. protected static ?string $title = 'Connected Accounts';
  12. protected static ?string $slug = 'services/connected-accounts';
  13. protected static string $view = 'filament.company.pages.service.connected-account';
  14. public static function canAccess(): bool
  15. {
  16. return app(PlaidService::class)->isEnabled();
  17. }
  18. public function getTitle(): string | Htmlable
  19. {
  20. return translate(static::$title);
  21. }
  22. public static function getNavigationLabel(): string
  23. {
  24. return translate(static::$title);
  25. }
  26. protected function getHeaderActions(): array
  27. {
  28. return [
  29. Action::make('connect')
  30. ->label('Connect account')
  31. ->dispatch('createToken'),
  32. ];
  33. }
  34. /**
  35. * @return array<NavigationItem>
  36. */
  37. public static function getNavigationItems(): array
  38. {
  39. return [
  40. NavigationItem::make(static::getNavigationLabel())
  41. ->visible(static::canAccess())
  42. ->group(static::getNavigationGroup())
  43. ->parentItem(static::getNavigationParentItem())
  44. ->icon(static::getNavigationIcon())
  45. ->activeIcon(static::getActiveNavigationIcon())
  46. ->isActiveWhen(fn (): bool => request()->routeIs(static::getNavigationItemActiveRoutePattern()))
  47. ->sort(static::getNavigationSort())
  48. ->badge(static::getNavigationBadge(), color: static::getNavigationBadgeColor())
  49. ->badgeTooltip(static::getNavigationBadgeTooltip())
  50. ->url(static::getNavigationUrl()),
  51. ];
  52. }
  53. public function getMaxContentWidth(): MaxWidth | string | null
  54. {
  55. return MaxWidth::ScreenLarge;
  56. }
  57. }