- Ganti ButtonSelect dan BorderBottomItem dengan pola sectionCard + fileGrid
- Tambah getFileIcon/getFileColor helper dan ikon berwarna per tipe file
- Bagian anggota pada create menggunakan listItemCard dengan avatar ImageUser
- Terapkan deduplication file berdasarkan nama dengan toast notifikasi
- Bersihkan komentar lama dan sederhanakan logic validasi
- Ganti warna teks deskripsi dari dimmed ke text pada list diskusi umum dan divisi
- Tambah class discussionHeaderPadding, discussionListPadding, discussionTitleCol,
discussionDescMargin, discussionEmptyText ke component.styles.ts
- Ganti semua inline style dengan themed object (warna dinamis) dan Styles.* (statis)
Gunakan useRef untuk skip efek di render pertama sehingga refetch
hanya dipanggil saat state update berubah (setelah CRUD), bukan
setiap kali halaman dibuka.
Cek nama file sebelum menambahkan ke list, skip jika sudah ada.
Gunakan nama file (bukan URI) karena Android dapat menghasilkan URI berbeda
untuk file yang sama di setiap sesi picker.
- Redesign list, detail, create, dan edit pengumuman menggunakan pola sectionCard
- Buat constants/styles/announcement.styles.ts untuk class announcementList* dan announcementDetail*
- Hapus local StyleSheet S dari index.tsx dan [id].tsx, ganti dengan Styles global
- Tambah getFileIcon/getFileColor helper dan fileGrid berwarna per tipe file
- Sesuaikan edit/[id].tsx dengan pola design create.tsx