feat: Complete Admin Phase 2 Voting screens migration
- Migrate 5 admin voting screens to OS_Wrapper (dashboard, lists, detail, form) - Add enableKeyboardHandling to reject-input form screen - Update TASK-005 with Admin Phase 2 completion status - Total: 146 files migrated (~85% complete) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@@ -5,11 +5,10 @@ import {
|
|||||||
BaseBox,
|
BaseBox,
|
||||||
CircleContainer,
|
CircleContainer,
|
||||||
Grid,
|
Grid,
|
||||||
NewWrapper,
|
OS_Wrapper,
|
||||||
Spacing,
|
Spacing,
|
||||||
StackCustom,
|
StackCustom,
|
||||||
TextCustom,
|
TextCustom,
|
||||||
ViewWrapper,
|
|
||||||
} from "@/components";
|
} from "@/components";
|
||||||
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
|
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
|
||||||
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
|
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
|
||||||
@@ -169,8 +168,7 @@ export default function AdminVotingDetail() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<OS_Wrapper
|
||||||
<NewWrapper
|
|
||||||
hideFooter
|
hideFooter
|
||||||
headerComponent={<AdminBackButtonAntTitle title={`Detail Data`} />}
|
headerComponent={<AdminBackButtonAntTitle title={`Detail Data`} />}
|
||||||
>
|
>
|
||||||
@@ -253,7 +251,6 @@ export default function AdminVotingDetail() {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<Spacing />
|
<Spacing />
|
||||||
</NewWrapper>
|
</OS_Wrapper>
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
import {
|
import {
|
||||||
AlertDefaultSystem,
|
AlertDefaultSystem,
|
||||||
BoxButtonOnFooter,
|
BoxButtonOnFooter,
|
||||||
|
OS_Wrapper,
|
||||||
TextAreaCustom,
|
TextAreaCustom,
|
||||||
ViewWrapper,
|
|
||||||
} from "@/components";
|
} from "@/components";
|
||||||
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
|
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
|
||||||
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
|
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
|
||||||
@@ -99,8 +99,9 @@ export default function AdminVotingRejectInput() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<OS_Wrapper
|
||||||
<ViewWrapper
|
enableKeyboardHandling
|
||||||
|
contentPaddingBottom={250}
|
||||||
footerComponent={buttonSubmit}
|
footerComponent={buttonSubmit}
|
||||||
headerComponent={<AdminBackButtonAntTitle title="Penolakan Voting" />}
|
headerComponent={<AdminBackButtonAntTitle title="Penolakan Voting" />}
|
||||||
>
|
>
|
||||||
@@ -112,7 +113,6 @@ export default function AdminVotingRejectInput() {
|
|||||||
showCount
|
showCount
|
||||||
maxLength={1000}
|
maxLength={1000}
|
||||||
/>
|
/>
|
||||||
</ViewWrapper>
|
</OS_Wrapper>
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Spacing, StackCustom, ViewWrapper } from "@/components";
|
import { OS_Wrapper, Spacing, StackCustom } from "@/components";
|
||||||
import { IconArchive } from "@/components/_Icon";
|
import { IconArchive } from "@/components/_Icon";
|
||||||
import {
|
import {
|
||||||
IconPublish,
|
IconPublish,
|
||||||
@@ -59,8 +59,7 @@ export default function AdminVoting() {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<OS_Wrapper>
|
||||||
<ViewWrapper>
|
|
||||||
<AdminTitlePage title="Voting" />
|
<AdminTitlePage title="Voting" />
|
||||||
<Spacing />
|
<Spacing />
|
||||||
<StackCustom gap={"xs"}>
|
<StackCustom gap={"xs"}>
|
||||||
@@ -68,7 +67,6 @@ export default function AdminVoting() {
|
|||||||
<AdminComp_BoxDashboard key={i} item={item} />
|
<AdminComp_BoxDashboard key={i} item={item} />
|
||||||
))}
|
))}
|
||||||
</StackCustom>
|
</StackCustom>
|
||||||
</ViewWrapper>
|
</OS_Wrapper>
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { SearchInput } from "@/components";
|
import { OS_Wrapper, SearchInput } from "@/components";
|
||||||
import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
|
import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
|
||||||
import NewWrapper from "@/components/_ShareComponent/NewWrapper";
|
|
||||||
import {
|
import {
|
||||||
PAGINATION_DEFAULT_TAKE
|
PAGINATION_DEFAULT_TAKE
|
||||||
} from "@/constants/constans-value";
|
} from "@/constants/constans-value";
|
||||||
@@ -81,7 +80,7 @@ export function Admin_ScreenVotingHistory() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NewWrapper
|
<OS_Wrapper
|
||||||
listData={pagination.listData}
|
listData={pagination.listData}
|
||||||
renderItem={renderItem}
|
renderItem={renderItem}
|
||||||
keyExtractor={(item: any) => item.id?.toString() || `fallback-${item.id}`}
|
keyExtractor={(item: any) => item.id?.toString() || `fallback-${item.id}`}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { SearchInput } from "@/components";
|
import { OS_Wrapper, SearchInput } from "@/components";
|
||||||
import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
|
import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
|
||||||
import NewWrapper from "@/components/_ShareComponent/NewWrapper";
|
|
||||||
import {
|
import {
|
||||||
PAGINATION_DEFAULT_TAKE
|
PAGINATION_DEFAULT_TAKE
|
||||||
} from "@/constants/constans-value";
|
} from "@/constants/constans-value";
|
||||||
@@ -89,7 +88,7 @@ export function Admin_ScreenVotingStatus() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NewWrapper
|
<OS_Wrapper
|
||||||
listData={pagination.listData}
|
listData={pagination.listData}
|
||||||
renderItem={renderItem}
|
renderItem={renderItem}
|
||||||
keyExtractor={(item: any) => item.id?.toString() || `fallback-${item.id}`}
|
keyExtractor={(item: any) => item.id?.toString() || `fallback-${item.id}`}
|
||||||
|
|||||||
@@ -370,10 +370,27 @@ import { OS_Wrapper } from "@/components";
|
|||||||
- ⏳ iOS Testing: Pending
|
- ⏳ iOS Testing: Pending
|
||||||
- ⏳ Android Testing: Pending
|
- ⏳ Android Testing: Pending
|
||||||
|
|
||||||
## ⏳ Admin Phase 2: Voting Management (Priority: HIGH)
|
## ✅ Admin Phase 2: Voting Management - COMPLETED (2026-04-14)
|
||||||
- [ ] `screens/Admin/Voting/ScreenVotingList.tsx`
|
|
||||||
- [ ] `screens/Admin/Voting/ScreenVotingCreate.tsx` → pakai `enableKeyboardHandling` + `contentPaddingBottom={250}`
|
**Files migrated: 6** (5 migrated + 1 already done)
|
||||||
- [ ] `screens/Admin/Voting/ScreenVotingEdit.tsx` → pakai `enableKeyboardHandling` + `contentPaddingBottom={250}`
|
|
||||||
|
#### 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)
|
## ⏳ Admin Phase 3: Donation Management (Priority: HIGH)
|
||||||
- [ ] `screens/Admin/Donation/ScreenDonationList.tsx`
|
- [ ] `screens/Admin/Donation/ScreenDonationList.tsx`
|
||||||
@@ -526,7 +543,7 @@ import { OS_Wrapper } from "@/components";
|
|||||||
| Phase | Total Files | Migrated | Testing | Status |
|
| Phase | Total Files | Migrated | Testing | Status |
|
||||||
|-------|-------------|----------|---------|--------|
|
|-------|-------------|----------|---------|--------|
|
||||||
| Admin Phase 1 (Event) | 8 | 8 | ✅ No errors | ✅ Complete |
|
| 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 3 (Donation) | ~3 | 0 | 0 | ⏳ Pending |
|
||||||
| Admin Phase 4 (Forum) | ~5 | 0 | 0 | ⏳ Pending |
|
| Admin Phase 4 (Forum) | ~5 | 0 | 0 | ⏳ Pending |
|
||||||
| Admin Phase 5 (Collaboration) | ~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 7 (Investment) | ~3 | 0 | 0 | ⏳ Pending |
|
||||||
| Admin Phase 8 (App Info) | ~4 | 0 | 0 | ⏳ Pending |
|
| Admin Phase 8 (App Info) | ~4 | 0 | 0 | ⏳ Pending |
|
||||||
| Admin Phase 9 (User Access) | 2 | 2 | 0 | ✅ Complete |
|
| 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:
|
### Grand Total:
|
||||||
| Category | Total Files | Migrated | Status |
|
| Category | Total Files | Migrated | Status |
|
||||||
|----------|-------------|----------|--------|
|
|----------|-------------|----------|--------|
|
||||||
| **User Screens** | ~132 | 126 | ~95% Complete |
|
| **User Screens** | ~132 | 126 | ~95% Complete |
|
||||||
| **Admin Screens** | ~37 | 14 | ~38% Complete |
|
| **Admin Screens** | ~40 | 20 | ~50% Complete |
|
||||||
| **GRAND TOTAL** | **~169** | **140** | **~83% Complete** |
|
| **GRAND TOTAL** | **~172** | **146** | **~85% Complete** |
|
||||||
|
|
||||||
## 🔄 Rollback Plan
|
## 🔄 Rollback Plan
|
||||||
|
|
||||||
@@ -556,6 +573,6 @@ Jika ada issue yang tidak bisa di-fix dalam 1 jam:
|
|||||||
**Co-authored-by**: Qwen-Coder <qwen-coder@alibabacloud.com>
|
**Co-authored-by**: Qwen-Coder <qwen-coder@alibabacloud.com>
|
||||||
**Created**: 2026-04-06
|
**Created**: 2026-04-06
|
||||||
**Last Updated**: 2026-04-14
|
**Last Updated**: 2026-04-14
|
||||||
**Status**: User Phase 1-9 Complete ✅ | Admin Phase 1, 6 & 9 Complete ✅ (140 files migrated)
|
**Status**: User Phase 1-9 Complete ✅ | Admin Phase 1, 2, 6 & 9 Complete ✅ (146 files migrated)
|
||||||
**Current**: Admin Phase 1 Complete ✅
|
**Current**: Admin Phase 2 Complete ✅
|
||||||
**Next**: Admin Phase 2-3 (HIGH Priority, ~6 files) OR User Phase 10-11 (~6 files)
|
**Next**: Admin Phase 3 (Donation, ~3 files) OR User Phase 10-11 (~6 files)
|
||||||
|
|||||||
Reference in New Issue
Block a user