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.

company-switcher.blade.php 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. @props([
  2. 'icon' => null,
  3. 'currentTenant' => null,
  4. ])
  5. @php
  6. $currentTenantName = filament()->getTenantName($currentTenant);
  7. $currentCompany = auth()->user()->currentCompany;
  8. $currentCompanyOwner = $currentCompany->owner;
  9. $items = filament()->getTenantMenuItems();
  10. $profileItem = $items['profile'] ?? null;
  11. $profileItemUrl = $profileItem?->getUrl();
  12. $registrationItem = $items['register'] ?? null;
  13. $registrationItemUrl = $registrationItem?->getUrl();
  14. $isRegistrationItemVisible = $registrationItem?->isVisible() ?? true;
  15. $hasRegistrationItem = ((filament()->hasTenantRegistration() && filament()->getTenantRegistrationPage()::canView()) || filled($registrationItemUrl)) && $isRegistrationItemVisible;
  16. $canSwitchTenants = count($tenants = array_filter(
  17. filament()->getUserTenants(filament()->auth()->user()),
  18. fn (\Illuminate\Database\Eloquent\Model $tenant): bool => ! $tenant->is($currentTenant),
  19. ));
  20. @endphp
  21. @if($currentTenant)
  22. <x-panel-shift-dropdown.selected-tenant
  23. icon="heroicon-m-check"
  24. icon-color="primary"
  25. :url="filament()->getUrl($currentTenant)"
  26. :image="filament()->getTenantAvatarUrl($currentTenant)"
  27. :label="$currentTenantName"
  28. />
  29. @endif
  30. @if($canSwitchTenants)
  31. @foreach($tenants as $tenant)
  32. <x-panel-shift-dropdown.item
  33. :url="filament()->getUrl($tenant)"
  34. :label="filament()->getTenantName($tenant)"
  35. :image="filament()->getTenantAvatarUrl($tenant)"
  36. />
  37. @endforeach
  38. @endif
  39. @if($hasRegistrationItem)
  40. <x-panel-shift-dropdown.item
  41. :url="$registrationItemUrl ?? filament()->getTenantRegistrationUrl()"
  42. :label="$registrationItem?->getLabel() ?? filament()->getTenantRegistrationPage()::getLabel()"
  43. :icon="$registrationItem?->getIcon() ?? \Filament\Support\Facades\FilamentIcon::resolve('panels::tenant-menu.registration-button') ?? 'heroicon-m-plus'"
  44. />
  45. @endif