Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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\Facades\Filament;
  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 $navigationIcon = 'icon-currency-exchange';
  13. protected static ?string $title = 'Live Currency';
  14. protected static ?string $navigationGroup = 'Services';
  15. protected static ?string $slug = 'services/live-currency';
  16. protected static string $view = 'filament.company.pages.service.live-currency';
  17. #[Url]
  18. public ?string $activeTab = null;
  19. public function getTitle(): string | Htmlable
  20. {
  21. return translate(static::$title);
  22. }
  23. public static function getNavigationLabel(): string
  24. {
  25. return translate(static::$title);
  26. }
  27. public static function getNavigationParentItem(): ?string
  28. {
  29. if (Filament::hasTopNavigation()) {
  30. return translate('Banking');
  31. }
  32. return null;
  33. }
  34. public static function shouldRegisterNavigation(): bool
  35. {
  36. return Forex::isEnabled();
  37. }
  38. public function mount(): void
  39. {
  40. $this->loadDefaultActiveTab();
  41. abort_unless(Forex::isEnabled(), 403);
  42. }
  43. protected function loadDefaultActiveTab(): void
  44. {
  45. if (filled($this->activeTab)) {
  46. return;
  47. }
  48. $this->activeTab = $this->getDefaultActiveTab();
  49. }
  50. public function getDefaultActiveTab(): string | int | null
  51. {
  52. return 'currency-list';
  53. }
  54. public function getViewData(): array
  55. {
  56. return [
  57. 'currencyListQuery' => CurrencyList::query()->count(),
  58. 'companyCurrenciesQuery' => Currency::query()->count(),
  59. ];
  60. }
  61. }