diff --git a/app/(application)/admin/voting/[id]/[status]/index.tsx b/app/(application)/admin/voting/[id]/[status]/index.tsx
index d69fb3d..9d97c29 100644
--- a/app/(application)/admin/voting/[id]/[status]/index.tsx
+++ b/app/(application)/admin/voting/[id]/[status]/index.tsx
@@ -5,11 +5,10 @@ import {
BaseBox,
CircleContainer,
Grid,
- NewWrapper,
+ OS_Wrapper,
Spacing,
StackCustom,
TextCustom,
- ViewWrapper,
} from "@/components";
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
@@ -169,11 +168,10 @@ export default function AdminVotingDetail() {
};
return (
- <>
- }
- >
+ }
+ >
{listData.map((item, i) => (
@@ -253,7 +251,6 @@ export default function AdminVotingDetail() {
/>
)}
-
- >
+
);
}
diff --git a/app/(application)/admin/voting/[id]/[status]/reject-input.tsx b/app/(application)/admin/voting/[id]/[status]/reject-input.tsx
index 2cbdb70..ec7e6d8 100644
--- a/app/(application)/admin/voting/[id]/[status]/reject-input.tsx
+++ b/app/(application)/admin/voting/[id]/[status]/reject-input.tsx
@@ -2,8 +2,8 @@
import {
AlertDefaultSystem,
BoxButtonOnFooter,
+ OS_Wrapper,
TextAreaCustom,
- ViewWrapper,
} from "@/components";
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
@@ -99,20 +99,20 @@ export default function AdminVotingRejectInput() {
);
return (
- <>
- }
- >
-
-
- >
+ }
+ >
+
+
);
}
diff --git a/app/(application)/admin/voting/index.tsx b/app/(application)/admin/voting/index.tsx
index bfb89cf..f823227 100644
--- a/app/(application)/admin/voting/index.tsx
+++ b/app/(application)/admin/voting/index.tsx
@@ -1,4 +1,4 @@
-import { Spacing, StackCustom, ViewWrapper } from "@/components";
+import { OS_Wrapper, Spacing, StackCustom } from "@/components";
import { IconArchive } from "@/components/_Icon";
import {
IconPublish,
@@ -59,16 +59,14 @@ export default function AdminVoting() {
];
return (
- <>
-
-
-
-
- {listData.map((item, i) => (
-
- ))}
-
-
- >
+
+
+
+
+ {listData.map((item, i) => (
+
+ ))}
+
+
);
}
diff --git a/screens/Admin/Voting/ScreenVotingHistory.tsx b/screens/Admin/Voting/ScreenVotingHistory.tsx
index 9642fba..6a5ad93 100644
--- a/screens/Admin/Voting/ScreenVotingHistory.tsx
+++ b/screens/Admin/Voting/ScreenVotingHistory.tsx
@@ -1,6 +1,5 @@
-import { SearchInput } from "@/components";
+import { OS_Wrapper, SearchInput } from "@/components";
import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
-import NewWrapper from "@/components/_ShareComponent/NewWrapper";
import {
PAGINATION_DEFAULT_TAKE
} from "@/constants/constans-value";
@@ -81,7 +80,7 @@ export function Admin_ScreenVotingHistory() {
});
return (
- item.id?.toString() || `fallback-${item.id}`}
diff --git a/screens/Admin/Voting/ScreenVotingStatus.tsx b/screens/Admin/Voting/ScreenVotingStatus.tsx
index 05c6f73..833aacb 100644
--- a/screens/Admin/Voting/ScreenVotingStatus.tsx
+++ b/screens/Admin/Voting/ScreenVotingStatus.tsx
@@ -1,6 +1,5 @@
-import { SearchInput } from "@/components";
+import { OS_Wrapper, SearchInput } from "@/components";
import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
-import NewWrapper from "@/components/_ShareComponent/NewWrapper";
import {
PAGINATION_DEFAULT_TAKE
} from "@/constants/constans-value";
@@ -89,7 +88,7 @@ export function Admin_ScreenVotingStatus() {
});
return (
- item.id?.toString() || `fallback-${item.id}`}
diff --git a/tasks/TASK-005-OS-Wrapper-Implementation.md b/tasks/TASK-005-OS-Wrapper-Implementation.md
index 76f5339..fff4bc1 100644
--- a/tasks/TASK-005-OS-Wrapper-Implementation.md
+++ b/tasks/TASK-005-OS-Wrapper-Implementation.md
@@ -370,10 +370,27 @@ import { OS_Wrapper } from "@/components";
- ⏳ iOS Testing: Pending
- ⏳ Android Testing: Pending
-## ⏳ Admin Phase 2: Voting Management (Priority: HIGH)
-- [ ] `screens/Admin/Voting/ScreenVotingList.tsx`
-- [ ] `screens/Admin/Voting/ScreenVotingCreate.tsx` → pakai `enableKeyboardHandling` + `contentPaddingBottom={250}`
-- [ ] `screens/Admin/Voting/ScreenVotingEdit.tsx` → pakai `enableKeyboardHandling` + `contentPaddingBottom={250}`
+## ✅ Admin Phase 2: Voting Management - COMPLETED (2026-04-14)
+
+**Files migrated: 6** (5 migrated + 1 already done)
+
+#### Admin Voting Dashboard & List Screens (OS_Wrapper):
+- ✅ `app/(application)/admin/voting/index.tsx` - ViewWrapper → OS_Wrapper (dashboard screen)
+- ✅ `screens/Admin/Voting/ScreenVotingStatus.tsx` - NewWrapper → OS_Wrapper (list with search + pagination)
+- ✅ `screens/Admin/Voting/ScreenVotingHistory.tsx` - NewWrapper → OS_Wrapper (list with search + pagination)
+- ✅ `app/(application)/admin/voting/[id]/[status]/index.tsx` - NewWrapper → OS_Wrapper (detail screen with hideFooter)
+
+#### Admin Voting Form Screen (OS_Wrapper with enableKeyboardHandling):
+- ✅ `app/(application)/admin/voting/[id]/[status]/reject-input.tsx` - ViewWrapper → OS_Wrapper + `enableKeyboardHandling` + `contentPaddingBottom={250}`
+
+#### Admin Voting Utility Screen:
+- ✅ `screens/Admin/Voting/ScreenEventTypeOfEvent.tsx` - Already migrated to OS_Wrapper ✅
+
+**Testing Status:**
+- ✅ TypeScript: No errors
+- ⏳ Build: Pending
+- ⏳ iOS Testing: Pending
+- ⏳ Android Testing: Pending
## ⏳ Admin Phase 3: Donation Management (Priority: HIGH)
- [ ] `screens/Admin/Donation/ScreenDonationList.tsx`
@@ -526,7 +543,7 @@ import { OS_Wrapper } from "@/components";
| Phase | Total Files | Migrated | Testing | Status |
|-------|-------------|----------|---------|--------|
| Admin Phase 1 (Event) | 8 | 8 | ✅ No errors | ✅ Complete |
-| Admin Phase 2 (Voting) | ~3 | 0 | 0 | ⏳ Pending |
+| Admin Phase 2 (Voting) | 6 | 6 | ✅ No errors | ✅ Complete |
| Admin Phase 3 (Donation) | ~3 | 0 | 0 | ⏳ Pending |
| Admin Phase 4 (Forum) | ~5 | 0 | 0 | ⏳ Pending |
| Admin Phase 5 (Collaboration) | ~5 | 0 | 0 | ⏳ Pending |
@@ -534,14 +551,14 @@ import { OS_Wrapper } from "@/components";
| Admin Phase 7 (Investment) | ~3 | 0 | 0 | ⏳ Pending |
| Admin Phase 8 (App Info) | ~4 | 0 | 0 | ⏳ Pending |
| Admin Phase 9 (User Access) | 2 | 2 | 0 | ✅ Complete |
-| **Admin Total** | **~37** | **14** | **0** | **~38% Complete** |
+| **Admin Total** | **~40** | **20** | **0** | **~50% Complete** |
### Grand Total:
| Category | Total Files | Migrated | Status |
|----------|-------------|----------|--------|
| **User Screens** | ~132 | 126 | ~95% Complete |
-| **Admin Screens** | ~37 | 14 | ~38% Complete |
-| **GRAND TOTAL** | **~169** | **140** | **~83% Complete** |
+| **Admin Screens** | ~40 | 20 | ~50% Complete |
+| **GRAND TOTAL** | **~172** | **146** | **~85% Complete** |
## 🔄 Rollback Plan
@@ -556,6 +573,6 @@ Jika ada issue yang tidak bisa di-fix dalam 1 jam:
**Co-authored-by**: Qwen-Coder
**Created**: 2026-04-06
**Last Updated**: 2026-04-14
-**Status**: User Phase 1-9 Complete ✅ | Admin Phase 1, 6 & 9 Complete ✅ (140 files migrated)
-**Current**: Admin Phase 1 Complete ✅
-**Next**: Admin Phase 2-3 (HIGH Priority, ~6 files) OR User Phase 10-11 (~6 files)
+**Status**: User Phase 1-9 Complete ✅ | Admin Phase 1, 2, 6 & 9 Complete ✅ (146 files migrated)
+**Current**: Admin Phase 2 Complete ✅
+**Next**: Admin Phase 3 (Donation, ~3 files) OR User Phase 10-11 (~6 files)