4.3 KiB
Debug Guide: INACBG Modal - Existing Codes Not Displaying
Problem
When clicking "Edit INACBG" button, the modal opens but existing INACBG codes from the database are not appearing. The modal shows "Belum ada kode INA CBG yang dipilih" instead of displaying saved codes.
Solution: Comprehensive Logging Added
I've added detailed console logging throughout the data flow to help identify where the data is being lost.
How to Debug
Step 1: Open Browser Developer Console
- Press F12 or Right-click → "Inspect" → "Console" tab
- Keep this open while testing
Step 2: Trigger the Data Load
- In the application, select a patient record
- Load a billing record
- Look for these console logs in order:
📊 Billing data from API: { ... complete object ... }
📊 data.kode_inacbg: (value or undefined)
📊 data.kode_inacbg type: (string, array, undefined, etc)
📊 data.kode_inacbg is Array?: (true/false)
If you see codes here: ✅ API is returning data correctly
Step 3: Click "Edit INACBG" Button
You should see:
🔓 Edit INACBG button clicked
📋 originalInacbgCodes: [code1, code2, ...]
📋 originalInacbgCodes length: (number)
📋 totalKlaimOriginal: (number)
If you see codes in originalInacbgCodes: ✅ Parent component has loaded data correctly
Step 4: Modal Opens
Look for:
📋 Edit INACBG Modal opened
📋 currentData received: {
kode_inacbg: [...],
tipe_inacbg: "...",
kelas: "...",
total_klaim: ...
}
📋 currentData.kode_inacbg: [code1, code2, ...]
📋 currentData.kode_inacbg is Array?: true
📋 Codes to set in modal: [code1, code2, ...]
📋 Codes length: (number)
Step 5: Monitor State Changes
Watch for:
🎯 selectedInacbgCodes updated: [code1, code2, ...]
🎯 selectedInacbgCodes length: (number)
These logs appear every time the state changes.
Diagnostic Checklist
| Log Message | Indicates | If Missing = Problem |
|---|---|---|
📊 Billing data from API: |
API returned data successfully | API not returning response |
📊 data.kode_inacbg type: |
Format of kode_inacbg from database | Data structure issue |
📝 Loaded INACBG codes from DB: |
Codes successfully parsed | Parsing/parsing logic failed |
🔓 Edit INACBG button clicked |
Button click registered | Button handler not triggering |
originalInacbgCodes length: (> 0) |
Parent component has data | State not loading correctly |
📋 currentData received: |
Modal received props | Props not being passed |
📋 Codes to set in modal: |
Modal initialized with codes | Modal initialization failed |
🎯 selectedInacbgCodes updated: |
Modal state updated with codes | React state not updating |
Common Issues & Solutions
Issue 1: API logs show kode_inacbg: undefined
Cause: Backend not returning kode_inacbg field
Solution: Check backend API response format
Issue 2: Codes loaded but originalInacbgCodes is empty
Cause: State not setting correctly Solution: May need to check React component lifecycle
Issue 3: Modal shows empty but currentData received has codes
Cause: Data not flowing from props to component state
Solution: Check setSelectedInacbgCodes initialization
Issue 4: selectedInacbgCodes shows codes but UI is empty
Cause: Rendering logic issue Solution: Check the display condition that shows codes in template
Data Flow Path
Backend Database
↓
API Response (kode_inacbg: [])
↓
INACBG_Admin_Ruangan component loads data
↓
setOriginalInacbgCodes([...])
↓
User clicks "Edit INACBG"
↓
Modal receives: currentData={{ kode_inacbg: originalInacbgCodes, ... }}
↓
edit-INACBG Modal setSelectedInacbgCodes(codes)
↓
UI displays codes with delete buttons
Next Steps
- Run the application
- Open F12 console
- Follow the steps above
- Screenshot the console output
- Identify which logs are missing or show wrong values
- Share the logs with specific details about what's missing
Based on the logs, we can pinpoint exactly where the data flow is broken and fix it accordingly.
Files Modified
INACBG_Admin_Ruangan.tsx- Added detailed logging at API fetch and button clickedit-INACBG.tsx- Added detailed logging in modal initialization and state updates