{{-- Hesabın klasör ağacı. Kök seviyede standart klasörler (Gelen Kutusu, Taslaklar, Gönderilenler …) her zaman düz sırada gösterilir; sunucuda INBOX altında dursalar bile. Kullanıcının kendi klasörleri onların ardından, kendi alt ağaçlarıyla gelir. @param \Illuminate\Support\Collection $folders Hesabın tüm klasörleri @param int|null $parentId @param int $depth --}} @php $standardTypes = ['inbox', 'drafts', 'sent', 'archive', 'junk', 'trash']; if ($depth === 0) { // Standart klasörler + üstü olmayan özel klasörler. Bir klasörün altındaki // özel klasörler aşağıdaki özyinelemeli çağrıda, üstüne girintili çizilir. $nodes = $folders ->filter(fn ($f) => in_array($f->type, $standardTypes, true) || $f->parent_id === null) ->sortBy([['sort_order', 'asc'], ['name', 'asc']]) ->values(); } else { // Alt seviyede yalnızca özel klasörler; standart olanlar zaten kökte çizildi $nodes = $folders->where('parent_id', $parentId)->where('type', 'custom')->sortBy('name')->values(); } @endphp @foreach ($nodes as $folder) @php $unread = (int) $folder->messages_unread; $children = $folders->where('parent_id', $folder->id) ->where('type', 'custom') ->reject(fn ($c) => $c->id === $folder->id); @endphp @if ($children->isNotEmpty() && $depth < 3) @include('agency.mail.partials._folders', [ 'folders' => $folders, 'parentId' => $folder->id, 'depth' => $depth + 1, 'account' => $account, ]) @endif @endforeach