feat: Complete Admin Phase 7 Investment screens + fix Admin Phase 8, 10 documentation + migrate dashboard & maps to OS_Wrapper

- Migrate admin/investment/[id]/[status]/index.tsx to OS_Wrapper (detail with pull-to-refresh)
- Migrate admin/investment/[id]/[status]/transaction-detail.tsx to OS_Wrapper (transaction detail with footer)
- Migrate admin/investment/[id]/reject-input.tsx to OS_Wrapper with enableKeyboardHandling
- Migrate admin/investment/index.tsx to OS_Wrapper (dashboard)
- Migrate ScreenInvestmentListOfInvestor.tsx to OS_Wrapper
- Migrate ScreenInvestmentStatus.tsx to OS_Wrapper
- Migrate admin/dashboard.tsx to OS_Wrapper
- Migrate admin/maps.tsx to OS_Wrapper
- Fix TASK-005 documentation: reorder Admin Phases 1-10, update tracking table
- Mark Admin Phase 3 (Donation) as Complete (12 files verified)
- Add Admin Phase 10 (Dashboard & Maps) documentation
- Update grand total: 178/~184 files (~97% complete)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-04-15 14:52:20 +08:00
parent e260ed546b
commit 5b836875a6
10 changed files with 136 additions and 48 deletions

View File

@@ -12,10 +12,10 @@ import {
Spacing,
StackCustom,
TextCustom,
ViewWrapper,
} from "@/components";
import { IconProspectus } from "@/components/_Icon";
import { IconDot, IconList } from "@/components/_Icon/IconComponent";
import OS_Wrapper from "@/components/_ShareComponent/OS_Wrapper";
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
import AdminButtonReview from "@/components/_ShareComponent/Admin/ButtonReview";
@@ -35,6 +35,7 @@ import { formatCurrencyDisplay } from "@/utils/formatCurrencyDisplay";
import { router, useFocusEffect, useLocalSearchParams } from "expo-router";
import _ from "lodash";
import React from "react";
import { RefreshControl } from "react-native";
import Toast from "react-native-toast-message";
export default function AdminInvestmentDetail() {
@@ -119,22 +120,30 @@ export default function AdminInvestmentDetail() {
if (!data) {
return (
<>
<ViewWrapper>
<OS_Wrapper>
<CustomSkeleton height={200} />
</ViewWrapper>
</OS_Wrapper>
</>
);
}
return (
<>
<ViewWrapper
<OS_Wrapper
headerComponent={
<AdminBackButtonAntTitle
title={`Detail Data`}
rightComponent={status === "publish" && rightComponent}
/>
}
refreshControl={
<RefreshControl
refreshing={isLoading}
onRefresh={onLoadData}
tintColor="#E1B525"
colors={["#E1B525"]}
/>
}
>
{status === "publish" && (
<BaseBox>
@@ -280,7 +289,7 @@ export default function AdminInvestmentDetail() {
}}
/>
)}
</ViewWrapper>
</OS_Wrapper>
<DrawerCustom
isVisible={openDrawer}

View File

@@ -7,9 +7,9 @@ import {
Spacing,
StackCustom,
TextCustom,
ViewWrapper,
} from "@/components";
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
import OS_Wrapper from "@/components/_ShareComponent/OS_Wrapper";
import { GridSpan_4_8 } from "@/components/_ShareComponent/GridSpan_4_8";
import GridTwoView from "@/components/_ShareComponent/GridTwoView";
import { MainColor } from "@/constants/color-palet";
@@ -225,11 +225,11 @@ export default function AdminInvestmentTransactionDetail() {
return (
<>
<ViewWrapper
<OS_Wrapper
headerComponent={
<AdminBackButtonAntTitle title="Detail Transaksi Investor" />
}
// footerComponent={buttonAction()}
footerComponent={buttonAction()}
>
<BaseBox>
<StackCustom>
@@ -244,7 +244,7 @@ export default function AdminInvestmentTransactionDetail() {
</BaseBox>
<Spacing />
{buttonAction()}
</ViewWrapper>
</OS_Wrapper>
</>
);
}

View File

@@ -3,10 +3,10 @@ import {
AlertDefaultSystem,
BoxButtonOnFooter,
TextAreaCustom,
ViewWrapper,
} from "@/components";
import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject";
import OS_Wrapper from "@/components/_ShareComponent/OS_Wrapper";
import { useAuth } from "@/hooks/use-auth";
import {
apiAdminInvestasiUpdateByStatus,
@@ -118,7 +118,9 @@ export default function AdminInvestmentRejectInput() {
return (
<>
<ViewWrapper
<OS_Wrapper
enableKeyboardHandling
contentPaddingBottom={250}
footerComponent={buttonSubmit}
headerComponent={
<AdminBackButtonAntTitle title="Penolakan Investasi" />
@@ -132,7 +134,7 @@ export default function AdminInvestmentRejectInput() {
showCount
maxLength={1000}
/>
</ViewWrapper>
</OS_Wrapper>
</>
);
}