diff --git a/app/(application)/(user)/investment/(tabs)/_layout.tsx b/app/(application)/(user)/investment/(tabs)/_layout.tsx
index eb0f9ed..21cbf3f 100644
--- a/app/(application)/(user)/investment/(tabs)/_layout.tsx
+++ b/app/(application)/(user)/investment/(tabs)/_layout.tsx
@@ -1,5 +1,5 @@
import BackButtonFromNotification from "@/components/Button/BackButtonFromNotification";
-import { ICON_SIZE_SMALL } from "@/constants/constans-value";
+import { ICON_SIZE_SMALL, OS_ANDROID_HEIGHT, OS_IOS_HEIGHT } from "@/constants/constans-value";
import { TabsStyles } from "@/styles/tabs-styles";
import { Feather, FontAwesome6, Ionicons } from "@expo/vector-icons";
import { router, Tabs, useLocalSearchParams, useNavigation } from "expo-router";
@@ -40,12 +40,12 @@ function InvestmentTabsWrapper() {
ios: {
borderTopWidth: 0,
paddingTop: 12,
- height: 80,
+ height: OS_IOS_HEIGHT,
},
android: {
borderTopWidth: 0,
paddingTop: 5,
- height: 70 + paddingBottom,
+ height: OS_ANDROID_HEIGHT + paddingBottom,
},
}),
}}
diff --git a/app/(application)/(user)/investment/[id]/(document)/add-document.tsx b/app/(application)/(user)/investment/[id]/(document)/add-document.tsx
index e5ae294..38ae316 100644
--- a/app/(application)/(user)/investment/[id]/(document)/add-document.tsx
+++ b/app/(application)/(user)/investment/[id]/(document)/add-document.tsx
@@ -5,11 +5,11 @@ import {
ButtonCustom,
CenterCustom,
InformationBox,
+ OS_Wrapper,
Spacing,
StackCustom,
TextCustom,
TextInputCustom,
- ViewWrapper,
} from "@/components";
import { MainColor } from "@/constants/color-palet";
import DIRECTORY_ID from "@/constants/directory-id";
@@ -83,9 +83,12 @@ export default function InvestmentAddDocument() {
);
return (
- <>
-
-
+
+
-
- >
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/(document)/edit-document.tsx b/app/(application)/(user)/investment/[id]/(document)/edit-document.tsx
index 42ee78e..d271217 100644
--- a/app/(application)/(user)/investment/[id]/(document)/edit-document.tsx
+++ b/app/(application)/(user)/investment/[id]/(document)/edit-document.tsx
@@ -6,11 +6,11 @@ import {
ButtonCustom,
CenterCustom,
InformationBox,
+ OS_Wrapper,
Spacing,
StackCustom,
TextCustom,
TextInputCustom,
- ViewWrapper,
} from "@/components";
import DIRECTORY_ID from "@/constants/directory-id";
import {
@@ -105,9 +105,12 @@ export default function InvestmentEditDocument() {
);
return (
- <>
-
-
+
+
-
- >
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/(my-holding)/[id].tsx b/app/(application)/(user)/investment/[id]/(my-holding)/[id].tsx
index 37b14b3..1085527 100644
--- a/app/(application)/(user)/investment/[id]/(my-holding)/[id].tsx
+++ b/app/(application)/(user)/investment/[id]/(my-holding)/[id].tsx
@@ -6,9 +6,9 @@ import {
DrawerCustom,
Grid,
MenuDrawerDynamicGrid,
+ OS_Wrapper,
StackCustom,
TextCustom,
- ViewWrapper,
} from "@/components";
import AppHeader from "@/components/_ShareComponent/AppHeader";
import { IconDocument, IconEdit, IconNews } from "@/components/_Icon";
@@ -93,7 +93,7 @@ export default function InvestmentDetailHolding() {
}}
/>
-
+
@@ -124,7 +124,7 @@ export default function InvestmentDetailHolding() {
status={"publish"}
bottomSection={bottomSection}
/>
-
+
{/* ========= Draft Drawer ========= */}
-
+
{data && data?.imageId && (
@@ -82,7 +82,7 @@ export default function InvestmentNews() {
{(data && data?.deskripsi) || "-"}
-
+
+
@@ -123,7 +126,6 @@ export default function InvestmentAddNews() {
Simpan
-
-
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/(transaction-flow)/failed.tsx b/app/(application)/(user)/investment/[id]/(transaction-flow)/failed.tsx
index b1e1d29..99b7d65 100644
--- a/app/(application)/(user)/investment/[id]/(transaction-flow)/failed.tsx
+++ b/app/(application)/(user)/investment/[id]/(transaction-flow)/failed.tsx
@@ -2,10 +2,10 @@
import {
BaseBox,
Grid,
+ OS_Wrapper,
Spacing,
StackCustom,
TextCustom,
- ViewWrapper,
} from "@/components";
import { MainColor } from "@/constants/color-palet";
import { apiInvestmentGetInvoice } from "@/service/api-client/api-investment";
@@ -69,7 +69,7 @@ export default function InvestmentFailed() {
];
return (
-
+
@@ -110,6 +110,6 @@ export default function InvestmentFailed() {
-
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/(transaction-flow)/index.tsx b/app/(application)/(user)/investment/[id]/(transaction-flow)/index.tsx
index ca205b0..43fbb8e 100644
--- a/app/(application)/(user)/investment/[id]/(transaction-flow)/index.tsx
+++ b/app/(application)/(user)/investment/[id]/(transaction-flow)/index.tsx
@@ -5,10 +5,10 @@ import {
ButtonCustom,
Divider,
Grid,
+ OS_Wrapper,
StackCustom,
TextCustom,
TextInputCustom,
- ViewWrapper,
} from "@/components";
import { LOCAL_STORAGE_KEY } from "@/constants/local-storage-key";
import { apiInvestmentGetOne } from "@/service/api-client/api-investment";
@@ -99,9 +99,12 @@ export default function InvestmentInvest() {
};
return (
- <>
-
-
+
+
@@ -165,7 +168,6 @@ export default function InvestmentInvest() {
-
- >
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx b/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx
index 8ebdd23..d389f1c 100644
--- a/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx
+++ b/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx
@@ -1,11 +1,11 @@
-import { BaseBox, StackCustom, TextCustom, ViewWrapper } from "@/components";
+import { BaseBox, OS_Wrapper, StackCustom, TextCustom } from "@/components";
import MoneyTransferAnimation from "@/components/_ShareComponent/MoneyTransferAnimation";
import { View } from "react-native";
export default function InvestmentProcess() {
return (
<>
-
+
@@ -35,7 +35,7 @@ export default function InvestmentProcess() {
*/}
-
+
>
);
}
diff --git a/app/(application)/(user)/investment/[id]/(transaction-flow)/select-bank.tsx b/app/(application)/(user)/investment/[id]/(transaction-flow)/select-bank.tsx
index 311385f..e480f58 100644
--- a/app/(application)/(user)/investment/[id]/(transaction-flow)/select-bank.tsx
+++ b/app/(application)/(user)/investment/[id]/(transaction-flow)/select-bank.tsx
@@ -2,7 +2,7 @@ import {
BaseBox,
BoxButtonOnFooter,
ButtonCustom,
- ViewWrapper,
+ OS_Wrapper,
} from "@/components";
import { RadioCustom, RadioGroup } from "@/components/Radio/RadioCustom";
import { LOCAL_STORAGE_KEY } from "@/constants/local-storage-key";
@@ -86,7 +86,7 @@ export default function InvestmentSelectBank() {
};
return (
-
+
{_.isEmpty(listBank)
? []
@@ -96,6 +96,6 @@ export default function InvestmentSelectBank() {
))}
-
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/(transaction-flow)/success.tsx b/app/(application)/(user)/investment/[id]/(transaction-flow)/success.tsx
index d8778c7..e0c5913 100644
--- a/app/(application)/(user)/investment/[id]/(transaction-flow)/success.tsx
+++ b/app/(application)/(user)/investment/[id]/(transaction-flow)/success.tsx
@@ -2,10 +2,10 @@
import {
BaseBox,
Grid,
+ OS_Wrapper,
Spacing,
StackCustom,
TextCustom,
- ViewWrapper,
} from "@/components";
import { MainColor } from "@/constants/color-palet";
import { apiInvestmentGetInvoice } from "@/service/api-client/api-investment";
@@ -69,7 +69,7 @@ export default function InvestmentSuccess() {
];
return (
-
+
@@ -110,6 +110,6 @@ export default function InvestmentSuccess() {
-
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/[status]/detail.tsx b/app/(application)/(user)/investment/[id]/[status]/detail.tsx
index 6fe973c..78727cc 100644
--- a/app/(application)/(user)/investment/[id]/[status]/detail.tsx
+++ b/app/(application)/(user)/investment/[id]/[status]/detail.tsx
@@ -4,7 +4,7 @@ import {
DotButton,
DrawerCustom,
MenuDrawerDynamicGrid,
- ViewWrapper,
+ OS_Wrapper,
} from "@/components";
import AppHeader from "@/components/_ShareComponent/AppHeader";
import { IconDocument, IconEdit, IconNews } from "@/components/_Icon";
@@ -123,14 +123,14 @@ export default function InvestmentDetailStatus() {
}}
/>
-
+
-
+
{/* ========= Draft Drawer ========= */}
);
return (
-
+
@@ -153,6 +153,6 @@ export default function InvestmentEditProspectus() {
Upload
-
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/edit.tsx b/app/(application)/(user)/investment/[id]/edit.tsx
index af3b344..5c91391 100644
--- a/app/(application)/(user)/investment/[id]/edit.tsx
+++ b/app/(application)/(user)/investment/[id]/edit.tsx
@@ -6,7 +6,7 @@ import {
InformationBox,
LandscapeFrameUploaded,
LoaderCustom,
- NewWrapper,
+ OS_Wrapper,
SelectCustom,
Spacing,
StackCustom,
@@ -199,7 +199,9 @@ export default function InvestmentEdit() {
};
return (
-
@@ -350,6 +352,6 @@ export default function InvestmentEdit() {
-
+
);
}
diff --git a/app/(application)/(user)/investment/[id]/index.tsx b/app/(application)/(user)/investment/[id]/index.tsx
index 8c98aa5..625c876 100644
--- a/app/(application)/(user)/investment/[id]/index.tsx
+++ b/app/(application)/(user)/investment/[id]/index.tsx
@@ -4,7 +4,7 @@ import {
DotButton,
DrawerCustom,
MenuDrawerDynamicGrid,
- ViewWrapper,
+ OS_Wrapper,
} from "@/components";
import AppHeader from "@/components/_ShareComponent/AppHeader";
import { IconDocument, IconEdit, IconNews } from "@/components/_Icon";
@@ -122,14 +122,14 @@ export default function InvestmentDetail() {
}}
/>
-
+
-
+
{/* ========= Draft Drawer ========= */}
- {/* */}
-
+
);
}
diff --git a/screens/Invesment/Document/ScreenListDocument.tsx b/screens/Invesment/Document/ScreenListDocument.tsx
index c65f261..90de55e 100644
--- a/screens/Invesment/Document/ScreenListDocument.tsx
+++ b/screens/Invesment/Document/ScreenListDocument.tsx
@@ -1,7 +1,6 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { TextCustom } from "@/components";
-import NewWrapper from "@/components/_ShareComponent/NewWrapper";
-import { PAGINATION_DEFAULT_TAKE } from "@/constants/constans-value";
+import { TextCustom, OS_Wrapper } from "@/components";
+import { PAGINATION_DEFAULT_TAKE, PADDING_INLINE } from "@/constants/constans-value";
import { createPaginationComponents } from "@/helpers/paginationHelpers";
import { usePagination } from "@/hooks/use-pagination";
import Investment_BoxDetailDocument from "@/screens/Invesment/Document/RecapBoxDetail";
@@ -58,8 +57,9 @@ export default function Investment_ScreenListOfDocument() {
);
return (
-
-
-
-
-
+
@@ -224,7 +224,7 @@ export default function Investment_ScreenInvoice() {
-
+
>
);
}
diff --git a/screens/Invesment/ScreenMyHolding.tsx b/screens/Invesment/ScreenMyHolding.tsx
index 1e643d5..e971228 100644
--- a/screens/Invesment/ScreenMyHolding.tsx
+++ b/screens/Invesment/ScreenMyHolding.tsx
@@ -1,11 +1,12 @@
/* eslint-disable react-hooks/exhaustive-deps */
import {
BaseBox,
+ OS_Wrapper,
ProgressCustom,
StackCustom,
TextCustom
} from "@/components";
-import NewWrapper from "@/components/_ShareComponent/NewWrapper";
+import { PADDING_INLINE } from "@/constants/constans-value";
import { PAGINATION_DEFAULT_TAKE } from "@/constants/constans-value";
import { createPaginationComponents } from "@/helpers/paginationHelpers";
import { useAuth } from "@/hooks/use-auth";
@@ -73,7 +74,8 @@ export default function Investment_ScreenMyHolding() {
});
return (
- > http://192.168.1.112:3000/api/mobile/file` + `[ERROR] [AxiosError: Request failed with status code 500]`
+- **Status:** ❌ Belum diperbaiki - akan diperbaiki besok
+- **Note Penting:** Fitur Investment **belum sepenuhnya rampung** - masih ada issue upload file yang perlu diinvestigasi lebih lanjut. Kemungkinan masalah di server upload service atau environment development. Production saat ini masih aman.
+
---
# 🔴 ADMIN PHASES (Admin-Facing Screens)
@@ -475,10 +481,10 @@ import { OS_Wrapper } from "@/components";
| User Phase 6 (Event) | 16 | 16 | ⏳ Pending | ✅ Complete |
| User Phase 7 (Voting) | 11 | 11 | ✅ No errors | ✅ Complete |
| User Phase 8 (Donation + Others) | 31 | 31 | ✅ No errors | ✅ Complete |
-| User Phase 9 (Investment) | 24 | 0 | 0 | ⏳ Pending |
+| User Phase 9 (Investment) | 24 | 24 | ✅ No errors | ✅ Complete |
| User Phase 10 (Collaboration) | ~3 | 0 | 0 | ⏳ Pending |
| User Phase 11 (Others) | ~3 | 0 | 0 | ⏳ Pending |
-| **User Total** | **~132** | **102** | **10** | **~77% Complete** |
+| **User Total** | **~132** | **126** | **10** | **~95% Complete** |
### Admin Phases:
| Phase | Total Files | Migrated | Testing | Status |
@@ -497,9 +503,9 @@ import { OS_Wrapper } from "@/components";
### Grand Total:
| Category | Total Files | Migrated | Status |
|----------|-------------|----------|--------|
-| **User Screens** | ~132 | 102 | ~77% Complete |
+| **User Screens** | ~132 | 126 | ~95% Complete |
| **Admin Screens** | ~31 | 2 | ~6% Complete |
-| **GRAND TOTAL** | **~163** | **104** | **~64% Complete** |
+| **GRAND TOTAL** | **~163** | **128** | **~79% Complete** |
## 🔄 Rollback Plan
@@ -514,5 +520,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-13
-**Status**: User Phase 1-8 Complete ✅ | Admin Phase 9 Complete ✅ (104 files migrated)
-**Next**: User Phase 9 - Investment Screens (24 files)
+**Status**: User Phase 1-9 Complete ✅ (with known issues) | Admin Phase 9 Complete ✅ (128 files migrated)
+**Next**: User Phase 10-11 (~6 files) OR Admin Phase 1-3 (HIGH Priority, ~9 files)
+**TODO Tomorrow**: Fix Investment upload error (status 500 on image upload)