{{-- Ringkasan isian WAJIB (skor) dan PERLU (dashboard) yang belum terisi di tab petani yang sedang dibuka. Daftar isiannya ada di App\Services\Produktivitas\KelengkapanPetani. Klik isian → halaman menggulir ke kolomnya (dicari lewat atribut name). --}} @props(['petani', 'lahan' => null]) @use('App\Services\Produktivitas\KelengkapanPetani') @php $tab = match (true) { request()->routeIs('petani.edit') => 'profil', request()->routeIs('petani.lahan-tanaman.*') => 'lahan', request()->routeIs('petani.praktik-budidaya.*') => 'praktik-budidaya', request()->routeIs('petani.sosial-ekonomi.*') => 'sosial-ekonomi', request()->routeIs('petani.akses-pasar.*') => 'akses-pasar', request()->routeIs('petani.skor.*') => 'semua', default => null, }; $urlTab = fn (string $t) => $t === 'profil' ? route('petani.edit', $petani->id) : route('petani.' . ($t === 'lahan' ? 'lahan-tanaman' : $t) . '.index', $petani->id); $kelengkapan = $tab ? KelengkapanPetani::untuk($petani) : null; if ($tab === 'semua') { // Tab Kesiapan Adopsi: rangkuman semua tab, klik → pindah ke tab terkait. $kelompok = $kelengkapan->semuaKosong() ->map(fn ($items, $t) => $items->map(fn ($item) => [ ...$item, 'url' => ($item['url'] ?? $urlTab($t)) . ($item['input'] ? '#isian=' . $item['input'] : ''), ])) ->filter(fn ($items) => $items->isNotEmpty()) ->mapWithKeys(fn ($items, $t) => [KelengkapanPetani::TAB_LABEL[$t] => $items]); } elseif ($tab) { // Di halaman edit lahan, isian lahan yang sedang dibuka langsung digulir (tanpa pindah halaman). $lahanDibukaId = $tab === 'lahan' && request()->routeIs('petani.lahan-tanaman.edit') ? $lahan?->id : null; $kelompok = $kelengkapan->kosong($tab) ->map(function ($item) use ($lahanDibukaId) { $dibuka = $lahanDibukaId && $item['lahan_id'] === $lahanDibukaId; return [ ...$item, 'grup' => $dibuka ? $item['grup'] . ' (sedang dibuka)' : $item['grup'], 'url' => ($dibuka || ! $item['url']) ? null : $item['url'] . ($item['input'] ? '#isian=' . $item['input'] : ''), ]; }) ->groupBy(fn ($item) => $item['grup'] ?? ''); } $semuaItem = $tab ? $kelompok->flatten(1) : collect(); $jumlahWajib = $semuaItem->where('prioritas', KelengkapanPetani::WAJIB)->count(); $jumlahPerlu = $semuaItem->where('prioritas', KelengkapanPetani::PERLU)->count(); @endphp @if ($tab) @if ($semuaItem->isEmpty()) @else {{-- Klik di mana saja pada kartu untuk membuka/menutup detail (kecuali tombol isian). --}} @endif @once @push('style') @endpush @push('scripts') @endpush @endonce @endif