fix(header): fix missing Divider, Badge, IconUserShield and navigate
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
**ID:** `TASK-DB-001`
|
||||
**Konteks:** Database Implementation
|
||||
**Status:** 🏗️ IN PROGRESS
|
||||
**Status:** ✅ COMPLETED (95% Selesai)
|
||||
**Prioritas:** 🔴 KRITIS (Blokade Fitur)
|
||||
**Estimasi:** 7 Hari Kerja
|
||||
|
||||
@@ -16,41 +16,41 @@ Mengganti mock data pada fitur-fitur inti (Kinerja Divisi, Pengaduan, Kependuduk
|
||||
## 📋 DAFTAR TUGAS (TODO)
|
||||
|
||||
### 1. Database Migration (Prisma)
|
||||
- [ ] Implementasikan model `Division`, `Activity`, `Document`, `Discussion`, dan `DivisionMetric` di `schema.prisma`.
|
||||
- [ ] Implementasikan model `Complaint`, `ComplaintUpdate`, `ServiceLetter`, dan `InnovationIdea` di `schema.prisma`.
|
||||
- [ ] Implementasikan model `Resident` dan `Banjar` di `schema.prisma`.
|
||||
- [ ] Implementasikan model `Event` di `schema.prisma`.
|
||||
- [ ] Jalankan `bun x prisma migrate dev --name init_core_features`.
|
||||
- [ ] Lakukan verifikasi relasi database di database viewer (Prisma Studio).
|
||||
- [x] Implementasikan model `Division`, `Activity`, `Document`, `Discussion`, dan `DivisionMetric` di `schema.prisma`.
|
||||
- [x] Implementasikan model `Complaint`, `ComplaintUpdate`, `ServiceLetter`, dan `InnovationIdea` di `schema.prisma`.
|
||||
- [x] Implementasikan model `Resident` dan `Banjar` di `schema.prisma`.
|
||||
- [x] Implementasikan model `Event` di `schema.prisma`.
|
||||
- [x] Jalankan `bun x prisma migrate dev --name init_core_features`.
|
||||
- [x] Lakukan verifikasi relasi database di database viewer (Prisma Studio).
|
||||
|
||||
### 2. Seeding Data
|
||||
- [ ] Update `prisma/seed.ts` untuk menyertakan data dummy yang realistis untuk:
|
||||
- [x] Update `prisma/seed.ts` untuk menyertakan data dummy yang realistis untuk:
|
||||
- 6 Banjar (Darmasaba, Manesa, dll)
|
||||
- 4 Divisi utama
|
||||
- Contoh Pengaduan & Layanan Surat
|
||||
- Contoh Event & Aktivitas
|
||||
- [ ] Jalankan `bun run seed` dan pastikan tidak ada error relasi.
|
||||
- [x] Jalankan `bun run seed` dan pastikan tidak ada error relasi.
|
||||
|
||||
### 3. Backend API Development (ElysiaJS)
|
||||
- [ ] Buat route handler di `src/api/` untuk setiap modul:
|
||||
- [x] Buat route handler di `src/api/` untuk setiap modul:
|
||||
- `division.ts`: CRUD Divisi & Aktivitas
|
||||
- `complaint.ts`: CRUD Pengaduan & Update Status
|
||||
- `resident.ts`: Endpoint untuk statistik demografi & list penduduk per banjar
|
||||
- `event.ts`: CRUD Agenda & Kalender
|
||||
- [ ] Integrasikan `apiMiddleware` untuk proteksi rute (Admin/Moderator).
|
||||
- [ ] Pastikan skema input/output didefinisikan menggunakan `t.Object` untuk OpenAPI documentation.
|
||||
- [x] Integrasikan `apiMiddleware` untuk proteksi rute (Admin/Moderator).
|
||||
- [x] Pastikan skema input/output didefinisikan menggunakan `t.Object` untuk OpenAPI documentation.
|
||||
|
||||
### 4. Contract-First Sync
|
||||
- [ ] Jalankan `bun run gen:api` untuk memperbarui `generated/api.ts`.
|
||||
- [ ] Verifikasi bahwa tipe-tipe baru muncul di frontend dan siap digunakan oleh `apiClient`.
|
||||
- [x] Jalankan `bun run gen:api` untuk memperbarui `generated/api.ts`.
|
||||
- [x] Verifikasi bahwa tipe-tipe baru muncul di frontend dan siap digunakan oleh `apiClient`.
|
||||
|
||||
### 5. Frontend Integration (Surgical Update)
|
||||
- [ ] Update `src/hooks/` atau `src/store/` untuk memanggil API riil menggantikan mock data.
|
||||
- [ ] Sambungkan komponen berikut ke API:
|
||||
- `DashboardContent`: Stat cards & Activity List
|
||||
- `KinerjaDivisi`: Division List & Activity Cards
|
||||
- `PengaduanLayananPublik`: Statistik & Tabel Pengajuan
|
||||
- `DemografiPekerjaan`: Grafik & Data per Banjar
|
||||
- [x] Update `src/hooks/` atau `src/store/` untuk memanggil API riil menggantikan mock data.
|
||||
- [x] Sambungkan komponen berikut ke API:
|
||||
- `DashboardContent`: Stat cards (Selesai)
|
||||
- `KinerjaDivisi`: Division List & Activity Cards (Selesai)
|
||||
- `PengaduanLayananPublik`: Statistik & Tabel Pengajuan (Selesai)
|
||||
- `DemografiPekerjaan`: Grafik & Data per Banjar (Pending - Next Step)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
**ID:** `TASK-DX-001`
|
||||
**Konteks:** Developer Experience (DX)
|
||||
**Status:** 🏗️ PROPOSED
|
||||
**Status:** ✅ COMPLETED
|
||||
**Prioritas:** 🟡 TINGGI (Peningkatan Produktivitas)
|
||||
**Estimasi:** 1 Hari Kerja
|
||||
|
||||
@@ -16,35 +16,35 @@ Mengaktifkan fitur **Click-to-Source** di lingkungan pengembangan: klik elemen U
|
||||
## 📋 DAFTAR TUGAS (TODO)
|
||||
|
||||
### 1. Vite Plugin Configuration
|
||||
- [ ] Buat file `src/utils/dev-inspector-plugin.ts` yang berisi `inspectorPlugin()` (regex-based JSX attribute injection).
|
||||
- [ ] Modifikasi `src/vite.ts`:
|
||||
- Impor `inspectorPlugin`.
|
||||
- Tambahkan `inspectorPlugin()` ke array `plugins` **sebelum** `react()`.
|
||||
- Gunakan `enforce: 'pre'` pada plugin tersebut.
|
||||
- [x] Buat file `src/utils/dev-inspector-plugin.ts` yang berisi `inspectorPlugin()` (regex-based JSX attribute injection).
|
||||
- [x] Modifikasi `src/vite.ts`:
|
||||
- [x] Impor `inspectorPlugin`.
|
||||
- [x] Tambahkan `inspectorPlugin()` ke array `plugins` **sebelum** `react()`.
|
||||
- [x] Gunakan `enforce: 'pre'` pada plugin tersebut.
|
||||
|
||||
### 2. Frontend Component Development
|
||||
- [ ] Buat komponen `src/components/dev-inspector.tsx`:
|
||||
- Implementasikan hotkey listener.
|
||||
- Tambahkan overlay UI (border biru & tooltip nama file) saat hover.
|
||||
- Implementasikan `getCodeInfoFromElement` dengan fallback (fiber props -> DOM attributes).
|
||||
- Tambahkan fungsi `openInEditor` (POST ke `/__open-in-editor`).
|
||||
- [x] Buat komponen `src/components/dev-inspector.tsx`:
|
||||
- [x] Implementasikan hotkey listener.
|
||||
- [x] Tambahkan overlay UI (border biru & tooltip nama file) saat hover.
|
||||
- [x] Implementasikan `getCodeInfoFromElement` dengan fallback (fiber props -> DOM attributes).
|
||||
- [x] Tambahkan fungsi `openInEditor` (POST ke `/__open-in-editor`).
|
||||
|
||||
### 3. Backend Integration (Elysia)
|
||||
- [ ] Modifikasi `src/index.ts`:
|
||||
- Tambahkan handler `onRequest` sebelum middleware lainnya.
|
||||
- Intercept request ke path `/__open-in-editor` (POST).
|
||||
- Gunakan `Bun.spawn()` untuk memanggil editor (berdasarkan `.env` `REACT_EDITOR`).
|
||||
- Gunakan `Bun.which()` untuk verifikasi keberadaan editor di system PATH.
|
||||
- [x] Modifikasi `src/index.ts`:
|
||||
- [x] Tambahkan handler `onRequest` sebelum middleware lainnya.
|
||||
- [x] Intercept request ke path `/__open-in-editor` (POST).
|
||||
- [x] Gunakan `Bun.spawn()` untuk memanggil editor (berdasarkan `.env` `REACT_EDITOR`).
|
||||
- [x] Gunakan `Bun.which()` untuk verifikasi keberadaan editor di system PATH.
|
||||
|
||||
### 4. Application Root Integration
|
||||
- [ ] Modifikasi `src/frontend.tsx`:
|
||||
- Implementasikan **Conditional Dynamic Import** untuk `DevInspector`.
|
||||
- Gunakan `import.meta.env?.DEV` agar tidak ada overhead di production.
|
||||
- Bungkus `<App />` (atau router) dengan `<DevInspectorWrapper>`.
|
||||
- [x] Modifikasi `src/frontend.tsx`:
|
||||
- [x] Implementasikan **Conditional Dynamic Import** untuk `DevInspector`.
|
||||
- [x] Gunakan `import.meta.env?.DEV` agar tidak ada overhead di production.
|
||||
- [x] Bungkus `<App />` (atau router) dengan `<DevInspectorWrapper>`.
|
||||
|
||||
### 5. Environment Setup
|
||||
- [ ] Tambahkan `REACT_EDITOR=code` (atau `cursor`, `windsurf`) di file `.env`.
|
||||
- [ ] Pastikan alias `@/` berfungsi dengan benar di plugin Vite untuk resolusi path.
|
||||
- [x] Tambahkan `REACT_EDITOR=code` (atau `cursor`, `windsurf`) di file `.env`.
|
||||
- [x] Pastikan alias `@/` berfungsi dengan benar di plugin Vite untuk resolusi path.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user