diff --git a/app/(application)/admin/_layout.tsx b/app/(application)/admin/_layout.tsx
index 303345c..bd4383c 100644
--- a/app/(application)/admin/_layout.tsx
+++ b/app/(application)/admin/_layout.tsx
@@ -23,6 +23,7 @@ export default function AdminLayout() {
<>
-
+
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/app/(application)/admin/app-information/index.tsx b/app/(application)/admin/app-information/index.tsx
new file mode 100644
index 0000000..213ad29
--- /dev/null
+++ b/app/(application)/admin/app-information/index.tsx
@@ -0,0 +1,62 @@
+import {
+ ScrollableCustom,
+ ViewWrapper
+} from "@/components";
+import AdminAppInformation_BusinessFieldSection from "@/screens/Admin/App-Information/BusinessFieldSection";
+import AdminAppInformation_Bank from "@/screens/Admin/App-Information/InformationBankSection";
+import AdminAppInformation_StickerSection from "@/screens/Admin/App-Information/StickerSection";
+import { useState } from "react";
+
+export default function AdminInformation() {
+ const [activeCategory, setActiveCategory] = useState("bank");
+
+ const handlePress = (item: any) => {
+ setActiveCategory(item.value);
+ // tambahkan logika lain seperti filter dsb.
+ };
+
+ const scrollComponent = (
+
+ );
+
+ const renderContent = () => {
+ switch (activeCategory) {
+ case "bank":
+ return ;
+ case "business":
+ return ;
+ case "sticker":
+ return ;
+ default:
+ return ;
+ }
+ };
+
+ return (
+ <>
+
+ {renderContent()}
+
+ >
+ );
+}
diff --git a/app/(application)/admin/dashboard.tsx b/app/(application)/admin/dashboard.tsx
index ceb6d04..4748f08 100644
--- a/app/(application)/admin/dashboard.tsx
+++ b/app/(application)/admin/dashboard.tsx
@@ -1,11 +1,40 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import {
+ StackCustom,
+ TextCustom,
+ ViewWrapper
+} from "@/components";
+import AdminComp_BoxDashboard from "@/components/_ShareComponent/Admin/BoxDashboard";
+import { MainColor } from "@/constants/color-palet";
+import { Ionicons } from "@expo/vector-icons";
export default function AdminDashboard() {
return (
<>
- Admin Dashboard
+
+
+ Main Dashboard
+
+ {listData.map((item, i) => (
+
+ ))}
+
>
);
}
+
+const listData = [
+ {
+ label: "User",
+ value: 4,
+ icon: ,
+ },
+ {
+ label: "Portofolio",
+ value: 7,
+ icon: (
+
+ ),
+ },
+];
diff --git a/app/(application)/admin/information.tsx b/app/(application)/admin/information.tsx
deleted file mode 100644
index d7831ef..0000000
--- a/app/(application)/admin/information.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { TextCustom, ViewWrapper } from "@/components";
-
-export default function AdminInformation() {
- return (
- <>
-
- Information
-
- >
- );
-}
diff --git a/app/(application)/admin/maps.tsx b/app/(application)/admin/maps.tsx
index c08541d..f27ac3d 100644
--- a/app/(application)/admin/maps.tsx
+++ b/app/(application)/admin/maps.tsx
@@ -1,10 +1,10 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import { MapCustom, ViewWrapper } from "@/components";
export default function AdminMaps() {
return (
<>
- Maps
+
>
);
diff --git a/components/Container/CircleContainer.tsx b/components/Container/CircleContainer.tsx
index 187b994..39987f9 100644
--- a/components/Container/CircleContainer.tsx
+++ b/components/Container/CircleContainer.tsx
@@ -1,22 +1,28 @@
import { MainColor } from "@/constants/color-palet";
import React from "react";
-import { StyleSheet, TextInput, View } from "react-native";
+import { StyleProp, StyleSheet, TextInput, View, ViewStyle } from "react-native";
interface CircularInputProps {
- value: string | number;
- onChange?: (value: string) => void;
+ value?: string | number
+ onChange?: (value: string | number) => void;
+ icon?: React.ReactNode;
+ style?: StyleProp
}
-const CircularInput: React.FC = ({ value, onChange }) => {
+const CircularInput: React.FC = ({ value, onChange, icon, style }) => {
return (
-
-
+
+ {icon ? (
+ icon
+ ) : (
+
+ )}
);
};
diff --git a/components/Divider/Divider.tsx b/components/Divider/Divider.tsx
index 810ab6e..477d354 100644
--- a/components/Divider/Divider.tsx
+++ b/components/Divider/Divider.tsx
@@ -2,8 +2,8 @@ import { AccentColor } from "@/constants/color-palet";
import { View } from "react-native";
export default function Divider({
- color = AccentColor.blue,
- size = 1,
+ color = AccentColor.white,
+ size = 0.5,
marginTop= 12,
marginBottom= 12,
}: {
diff --git a/components/Text/TextCustom.tsx b/components/Text/TextCustom.tsx
index c1ad0e7..49fbf3d 100644
--- a/components/Text/TextCustom.tsx
+++ b/components/Text/TextCustom.tsx
@@ -22,7 +22,7 @@ interface TextCustomProps {
style?: StyleProp;
bold?: boolean;
semiBold?: boolean;
- size?: "default" | "large" | "small" | "xlarge";
+ size?: "default" | "large" | "small" | "xlarge" | number
color?: "default" | "yellow" | "red" | "gray" | "green" | "black"
align?: TextAlign; // Prop untuk alignment
truncate?: boolean | number;
@@ -54,6 +54,7 @@ const TextCustom: React.FC = ({
if (size === "large") selectedStyles.push(styles.large);
else if (size === "xlarge") selectedStyles.push(styles.xlarge);
else if (size === "small") selectedStyles.push(styles.small);
+ else if (typeof size === "number") selectedStyles.push({ fontSize: size });
// Color
if (color === "yellow") selectedStyles.push(styles.yellow);
@@ -105,7 +106,7 @@ export const styles = StyleSheet.create({
fontSize: TEXT_SIZE_MEDIUM,
color: MainColor.white,
fontFamily: "Poppins-Regular",
- lineHeight: 20,
+ // lineHeight: 20,
},
bold: {
fontFamily: "Poppins-Bold",
diff --git a/components/_ShareComponent/Admin/BoxDashboard.tsx b/components/_ShareComponent/Admin/BoxDashboard.tsx
new file mode 100644
index 0000000..4c85dae
--- /dev/null
+++ b/components/_ShareComponent/Admin/BoxDashboard.tsx
@@ -0,0 +1,46 @@
+import BaseBox from "@/components/Box/BaseBox";
+import CircleContainer from "@/components/Container/CircleContainer";
+import Grid from "@/components/Grid/GridCustom";
+import StackCustom from "@/components/Stack/StackCustom";
+import TextCustom from "@/components/Text/TextCustom";
+import { MainColor } from "@/constants/color-palet";
+
+interface BoxDashboardProps {
+ item: {
+ label: string;
+ value: string | number;
+ icon: React.ReactNode;
+ };
+}
+
+export default function AdminComp_BoxDashboard({ item }: BoxDashboardProps) {
+ return (
+ <>
+
+
+
+
+ {item.label}
+ {item.value}
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/components/_ShareComponent/Admin/BoxTitlePage.tsx b/components/_ShareComponent/Admin/BoxTitlePage.tsx
new file mode 100644
index 0000000..1e97491
--- /dev/null
+++ b/components/_ShareComponent/Admin/BoxTitlePage.tsx
@@ -0,0 +1,16 @@
+import BaseBox from "@/components/Box/BaseBox";
+import TextCustom from "@/components/Text/TextCustom";
+import { TEXT_SIZE_LARGE } from "@/constants/constans-value";
+
+export default function AdminComp_BoxTitle({ title , rightComponent}: { title: string , rightComponent?: React.ReactNode}) {
+ return (
+ <>
+
+
+ {title}
+
+ {rightComponent}
+
+ >
+ );
+}
diff --git a/screens/Admin/App-Information/BusinessFieldSection.tsx b/screens/Admin/App-Information/BusinessFieldSection.tsx
new file mode 100644
index 0000000..949fec4
--- /dev/null
+++ b/screens/Admin/App-Information/BusinessFieldSection.tsx
@@ -0,0 +1,9 @@
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+
+export default function AdminAppInformation_BusinessFieldSection() {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/screens/Admin/App-Information/InformationBankSection.tsx b/screens/Admin/App-Information/InformationBankSection.tsx
new file mode 100644
index 0000000..eab8ea9
--- /dev/null
+++ b/screens/Admin/App-Information/InformationBankSection.tsx
@@ -0,0 +1,95 @@
+import {
+ BaseBox,
+ ButtonCustom,
+ Divider,
+ Grid,
+ TextCustom
+} from "@/components";
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+import { MainColor } from "@/constants/color-palet";
+import { ICON_SIZE_SMALL } from "@/constants/constans-value";
+import { dummyMasterBank } from "@/lib/dummy-data/_master/bank";
+import { FontAwesome5, Ionicons } from "@expo/vector-icons";
+import { useState } from "react";
+import { TouchableOpacity, View } from "react-native";
+import { Switch } from "react-native-paper";
+
+export default function AdminAppInformation_Bank() {
+ const [value, setValue] = useState(false);
+ return (
+ <>
+ {}}
+ >
+
+
+ }
+ />
+
+
+
+ Aksi
+
+
+ Status
+
+
+ Nama Bank
+
+
+
+
+
+ {dummyMasterBank.map((e, i) => (
+
+
+
+
+ }
+ onPress={() => {}}
+ >
+ Edit
+
+
+
+ {
+ setValue(!value);
+ }}
+ theme={{
+ colors: {
+ primary: MainColor.yellow,
+ },
+ }}
+ />
+
+
+ {e.code}
+
+
+
+
+ ))}
+
+ >
+ );
+}
diff --git a/screens/Admin/App-Information/StickerSection.tsx b/screens/Admin/App-Information/StickerSection.tsx
new file mode 100644
index 0000000..d0709ce
--- /dev/null
+++ b/screens/Admin/App-Information/StickerSection.tsx
@@ -0,0 +1,9 @@
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+
+export default function AdminAppInformation_StickerSection() {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/screens/Admin/listPageAdmin.tsx b/screens/Admin/listPageAdmin.tsx
index 2ec3f62..e05ec4d 100644
--- a/screens/Admin/listPageAdmin.tsx
+++ b/screens/Admin/listPageAdmin.tsx
@@ -86,7 +86,7 @@ const adminListMenu: NavbarItem[] = [
{
label: "App Information",
icon: "information-circle",
- link: "/admin/information",
+ link: "/admin/app-information",
},
{
label: "User Access",
diff --git a/screens/Authentication/LoginView.tsx b/screens/Authentication/LoginView.tsx
index 5f244fb..094027d 100644
--- a/screens/Authentication/LoginView.tsx
+++ b/screens/Authentication/LoginView.tsx
@@ -32,7 +32,7 @@ export default function LoginView() {
// router.navigate("/verification");
// router.navigate(`/(application)/(user)/profile/${id}`);
- router.navigate("/(application)/(user)/home");
+ // router.navigate("/(application)/(user)/home");
// router.navigate(`/(application)/profile/${id}/edit`);
// router.navigate(`/(application)/(user)/portofolio/${id}`)
// router.navigate(`/(application)/(image)/preview-image/${id}`);
@@ -40,7 +40,7 @@ export default function LoginView() {
// router.replace("/(application)/coba");
// router.navigate("/investment/(tabs)")1
// router.navigate("/crowdfunding")
- // router.navigate("/admin/dashboard")
+ router.navigate("/admin/dashboard")
}
return (