@php $dateLocale = \App\Support\AppLocale::carbon(); $searchTrim = trim($search); $users = collect($finance->users()); $selected = $selectedUserId !== null ? \App\Models\User::query()->find($selectedUserId) : null; $filtered = $users->filter(function ($u) use ($searchTrim) { $q = mb_strtolower($searchTrim); if ($q === '') { return true; } return str_contains(mb_strtolower($u['name'] ?? ''), $q) || str_contains(mb_strtolower($u['email'] ?? ''), $q); }); if ($roleFilter !== 'all') { $filtered = $filtered->filter(fn ($u) => (string) ($u['role'] ?? '') === $roleFilter); } if ($statusFilter !== 'all') { $filtered = $filtered->filter(fn ($u) => (string) ($u['status'] ?? '') === $statusFilter); } @endphp
@if ($filtered->isEmpty())

{{ __('budgets.users_page.empty_title') }}

@if ($users->isEmpty()) {{ __('budgets.users_page.empty_hint') }} @else {{ __('budgets.users_page.empty_filtered') }} @endif

@else
{{ __('budgets.users_page.col_name') }} {{ __('budgets.users_page.col_email') }} {{ __('budgets.users_page.col_role') }} {{ __('budgets.users_page.col_status') }} {{ __('budgets.users_page.col_plan') }}
@foreach ($filtered as $i => $u) @php $role = $u['role'] ?? 'user'; $status = $u['status'] ?? 'active'; $plan = $u['plan'] ?? 'free'; $roleBadge = match ($role) { 'superadmin', 'super_admin' => 'bg-primary/10 text-primary', 'admin' => 'bg-info/10 text-info', default => 'bg-muted text-muted-foreground', }; $statusBadge = match ($status) { 'active' => 'bg-primary/10 text-primary', 'inactive' => 'bg-muted text-muted-foreground', 'suspended' => 'bg-expense/10 text-expense', default => 'bg-muted text-muted-foreground', }; $roleIcon = match ($role) { 'superadmin', 'super_admin' => 'crown', 'admin' => 'shield', default => 'user', }; $roles = (array) __('budgets.users_page.roles'); $roleLabel = is_array($roles) ? (string) ($roles[$role] ?? ($role === 'super_admin' ? ($roles['superadmin'] ?? $role) : $role)) : $role; $statuses = (array) __('budgets.users_page.statuses'); $statusLabel = is_array($statuses) && array_key_exists($status, $statuses) ? (string) $statuses[$status] : $status; $plans = (array) __('budgets.users_page.plans'); $planLabel = is_array($plans) && array_key_exists($plan, $plans) ? (string) $plans[$plan] : $plan; $planBadge = $plan === 'premium' ? 'bg-primary/10 text-primary' : 'bg-muted text-muted-foreground'; $initial = mb_strtoupper(mb_substr((string) ($u['name'] ?? '?'), 0, 1)); $joined = \Carbon\Carbon::parse($u['joined'] ?? now())->locale($dateLocale)->translatedFormat('M Y'); @endphp
{{ $initial }}

{{ $u['name'] }}

{{ __('budgets.users_page.joined', ['date' => $joined]) }}

{{ $u['email'] }}

{{ $roleLabel }} {{ $statusLabel }} {{ $planLabel }}
@endforeach
@endif @if ($selected !== null)

{{ __('budgets.users_page.manage_title', ['name' => $selected->name]) }}

{{ $selected->email }}

{{ __('budgets.users_page.open_profile') }}
@if ($selected->suspended_at === null) @else @endif
@endif