feat(ui): dark mode toggle, mobile UX fixes, and DB perf (reopen of #37)#40
Open
tammami wants to merge 2 commits into
Open
feat(ui): dark mode toggle, mobile UX fixes, and DB perf (reopen of #37)#40tammami wants to merge 2 commits into
tammami wants to merge 2 commits into
Conversation
- Add light/dark theme toggle dengan palette navy yang mirror live site (nemesis.assai.id). Carto Positron <-> Dark-Matter basemap ikut beralih. State persist via localStorage + respect prefers-color-scheme. - Mobile: legend default tertutup biar peta tidak ketutup, owner-type filter chips kembali muncul di sidebar header, "Tentang metode" rata kiri di appbar yang wrap, "Sorotan" jadi <details> collapsible (expanded di desktop). - Hapus KPI "Liputan" yang redundant dengan sublabel "Paket Teraudit". - Pencarian: hilangkan splash "Mengambil paket dari backend audit" saat refine filter -- pakai is-searching indicator + silent fetch sehingga tabel lama tetap tampil. Debounce sidebar search 180ms (modal search sudah 300ms). - Backend perf: SQLite mmap_size=2G, cache_size=128MiB, temp_store=MEMORY, dan covering index idx_packages_filter (id, severity, owner_type, is_priority). Filter di Jakarta Pusat (~72k paket) turun dari 4.85s -> 0.25s pada cold cache. - Tabel detail wilayah: lebar kolom Pagu dinaikkan + overflow ellipsis supaya angka panjang tidak nyebrang ke kolom Severity.
main melakukan migrasi besar JSX/JS ke TSX (komponen, Zustand store, hooks, types) tapi tetap pakai UI lama. Branch ini punya redesign UI besar (appbar, dark mode, breadcrumb, casefile route, methods overlay) di JSX lama. Merge otomatis akan kehilangan salah satu sisi—PR ini mengadopsi struktur TSX dari main dan memport ulang seluruh fitur UI baru ke TSX agar dua arah kerjaan tetap hidup. Komponen baru: - Header (appbar 3 baris), MethodsOverlay, AiDisclosureModal - Breadcrumb, CaseFileHero (Sorotan), CaseFileSummary (Ringkasan) - AreaCard/OwnerCard restruktur ke grid 4-row dengan Pagu Teraudit Store + routing: - theme state (localStorage persist, AuditMap.setTheme integration) - casefile path routing (/wilayah, /provinsi, /owner) + popstate - methods/disclosure open state, breadcrumb label, totalPages Theming: - Palette light & dark dirombak untuk kontras antar tier lebih tegas - zeroColor dark dinaikkan supaya tidak menyatu dengan panel legenda - Swatch legenda di-blend dengan basemap supaya match visual map UI polish: - Sidebar header grid layout (mobile tabs di baris sendiri, filter pemilik di atas, sort & search full-width) - Desktop saat map-hidden: sort + filter pemilik space-between satu baris - Modal-filters phone: search full-width, dua select 50/50 baris bawah - PackageTable: copy-id, row click ke inaproc, keyboard handler - Pagination: jump-to-page + page-size selector (25/50/100/250) - Keyboard shortcuts: ArrowLeft/Right paging, Escape navigate home - Theme re-render guard di MapView (skip fitBounds saat hanya warna)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@jokopriyono conflict sudah diresolve. Karena branch main sudah di migrasi dari JSX ke TSX, saya juga mengadopsi arsitektur TSX dari branch main kemudian memporting apa yang sudah saya propose sebelumnya yaitu redesign UI (appbar, dark mode, casefile route, methods overlay, dst) ke komponen TSX serta optimasi pada pencarian data.
Untuk typecheck + build sudah pass.
Detail di commit
f80945c.Button reopen tidak tersedia di sisi saya.