Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

LiveCurrency.php 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Filament\Company\Pages\Service;
  3. use App\Facades\Forex;
  4. use App\Models\Service\CurrencyList;
  5. use App\Models\Setting\Currency;
  6. use Filament\Navigation\NavigationItem;
  7. use Filament\Pages\Page;
  8. use Illuminate\Contracts\Support\Htmlable;
  9. use Livewire\Attributes\Url;
  10. class LiveCurrency extends Page
  11. {
  12. protected static ?string $title = 'Live Currency';
  13. protected static ?string $slug = 'services/live-currency';
  14. protected static string $view = 'filament.company.pages.service.live-currency';
  15. #[Url]
  16. public ?string $activeTab = null;
  17. public static function canAccess(): bool
  18. {
  19. return Forex::isEnabled();
  20. }
  21. public function getTitle(): string | Htmlable
  22. {
  23. return translate(static::$title);
  24. }
  25. public static function getNavigationLabel(): string
  26. {
  27. return translate(static::$title);
  28. }
  29. public function mount(): void
  30. {
  31. $this->loadDefaultActiveTab();
  32. }
  33. protected function loadDefaultActiveTab(): void
  34. {
  35. if (filled($this->activeTab)) {
  36. return;
  37. }
  38. $this->activeTab = $this->getDefaultActiveTab();
  39. }
  40. public function getDefaultActiveTab(): string | int | null
  41. {
  42. return 'currency-list';
  43. }
  44. public function getViewData(): array
  45. {
  46. return [
  47. 'currencyListQuery' => CurrencyList::query()->count(),
  48. 'companyCurrenciesQuery' => Currency::query()->count(),
  49. ];
  50. }
  51. /**
  52. * @return array<NavigationItem>
  53. */
  54. public static function getNavigationItems(): array
  55. {
  56. return [
  57. NavigationItem::make(static::getNavigationLabel())
  58. ->visible(static::canAccess())
  59. ->group(static::getNavigationGroup())
  60. ->parentItem(static::getNavigationParentItem())
  61. ->icon(static::getNavigationIcon())
  62. ->activeIcon(static::getActiveNavigationIcon())
  63. ->isActiveWhen(fn (): bool => request()->routeIs(static::getNavigationItemActiveRoutePattern()))
  64. ->sort(static::getNavigationSort())
  65. ->badge(static::getNavigationBadge(), color: static::getNavigationBadgeColor())
  66. ->badgeTooltip(static::getNavigationBadgeTooltip())
  67. ->url(static::getNavigationUrl()),
  68. ];
  69. }
  70. }