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

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Enums;
  3. use Filament\Support\Contracts\HasColor;
  4. use Filament\Support\Contracts\HasIcon;
  5. use Filament\Support\Contracts\HasLabel;
  6. enum AccountStatus: string implements HasColor, HasIcon, HasLabel
  7. {
  8. case Open = 'open';
  9. case Active = 'active';
  10. case Inactive = 'inactive';
  11. case Restricted = 'restricted';
  12. case Closed = 'closed';
  13. public const DEFAULT = self::Open->value;
  14. public function getLabel(): ?string
  15. {
  16. return translate($this->name);
  17. }
  18. public function getColor(): string | array | null
  19. {
  20. return match ($this) {
  21. self::Open => 'primary',
  22. self::Active => 'success',
  23. self::Inactive => 'gray',
  24. self::Restricted => 'warning',
  25. self::Closed => 'danger',
  26. };
  27. }
  28. public function getIcon(): ?string
  29. {
  30. return match ($this) {
  31. self::Open => 'heroicon-o-currency-dollar',
  32. self::Active => 'heroicon-o-clock',
  33. self::Inactive => 'heroicon-o-status-offline',
  34. self::Restricted => 'heroicon-o-exclamation',
  35. self::Closed => 'heroicon-o-x-circle',
  36. };
  37. }
  38. }