- Created src/lib/errorMessages.ts for user-friendly Bahasa Indonesia error messages
- Created src/components/LoadingOverlay.tsx with Framer Motion animations
- Updated BankTransferPanel with LoadingOverlay and mapErrorToUserMessage
- All 4 error catch blocks now use user-friendly messages
- GoPayPanel imports restored (ready for next iteration)
Story: 1.1 - Prevent Duplicate VA/QR/Code Generation & Improve Feedback
Status: Partial (BankTransferPanel complete, GoPayPanel & CStorePanel pending)
Update default payment link TTL from 30 minutes to 24 hours across frontend and backend. Also modify countdown display to show hours in addition to minutes and seconds.
refactor: remove dark mode styles and simplify UI components
style: update color scheme and branding to new blue theme
feat(toast): add toast notification system for user feedback
fix: correct merchant name and update payment sheet styling
docs: update comments and remove unused code
- Ubah semua Button varian 'ghost' menjadi 'outline' di CardPanel, GoPayPanel, CStorePanel, InlinePaymentStatus untuk konsistensi tipe dan styling\n- Hilangkan logo per-bank dari BankTransferPanel; hanya tampilkan nama bank\n- Perbaiki tampilan Nomor VA: pindah ke baris baru, wrap (reak-all), ukuran font responsif, kurangi tracking\n- Tampilkan gambar 'logo semua bank' di header metode Transfer bank (kanan) dan panel pilihan di Step 2\n- Perbesar ikon logo agar jelas dan seragam di PaymentMethodList\n- Penyesuaian ringan di PaymentSheet untuk CTA status
PaymentLogos: update BANK_LOGOS src to match current asset filenames (BCA, BNI, BRI, CIMB, Mandiri, Permata). Ensures PaymentMethodList and panels render new logos.
BankTransferPanel: VA card above instructions; clearer borders; aria-live for VA status; dynamic 'Instruksi pembayaran' panel.\nBcaInstructionList: ARIA roles for tablist/tabs/tabpanels; stronger visual cues; 3px focus ring.\nGoPayPanel: auto display instructions with dynamic steps per mode; clearer mode toggle buttons; 3px focus ring.\nButton: standardize 3px focus ring with 2px offset and accent color.\nPaymentMethodList: enhanced contrast, thicker borders, larger targets for seniors.\nPaymentInstructions: flexible title and steps; never empty with sensible fallback.
GoPay: spinner QRIS dalam frame, hilangkan QR dummy saat menunggu, hapus tombol Buat QR, sanitasi URL actions. CStore: panel pilihan toko di Step 2, auto-generate kode dengan guard StrictMode, perbaiki busy agar tidak nyangkut setelah respons 201. Checkout: jangan auto-advance untuk CStore, oper defaultStore sesuai pilihan. BankTransfer: stabilisasi in-flight promise untuk VA (sebelumnya).