diff --git a/app/(application)/(user)/voting/(tabs)/history.tsx b/app/(application)/(user)/voting/(tabs)/history.tsx
index a55c2e6..992282d 100644
--- a/app/(application)/(user)/voting/(tabs)/history.tsx
+++ b/app/(application)/(user)/voting/(tabs)/history.tsx
@@ -1,5 +1,5 @@
import { ViewWrapper } from "@/components";
-import TabsTwoHeaderCustom from "@/components/_ShareComponent/TabsTwoHeaderCustom";
+import TabsTwoButtonCustom from "@/components/_ShareComponent/TabsTwoHeaderCustom";
import Voting_BoxPublishSection from "@/screens/Voting/BoxPublishSection";
import { useState } from "react";
@@ -15,7 +15,7 @@ export default function VotingHistory() {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {/* ================== Investment Start ================== */}
+
+
+
+
+ {/* ================== Investment End ================== */}
+
+ {/* ================== Maps Start ================== */}
+
+ {/* ================== Maps End ================== */}
+
+ {/* ================== App Information Start ================== */}
+
+ {/* ================== App Information End ================== */}
+
+ {/* ================== Job Start ================== */}
+
+
+
+
+
+
+
+ {/* ================== Collaboration Start ================== */}
+
+
+
+
+
+
+ {/* ================== Collaboration End ================== */}
+ {}}
+ >
+ Reject
+
+
+ );
+
+ return (
+ <>
+ }
+ footerComponent={bottomFooter}
+ >
+
+
+ {listData.map((item, i) => (
+
+
+ {item.label}
+
+
+ {item.value}
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+const listData = [
+ {
+ label: "Username",
+ value: "Bagas Banuna",
+ },
+ {
+ label: "Judul Proyek",
+ value:
+ "Judul Proyek: Lorem ipsum dolor sit amet consectetur adipisicing elit.",
+ },
+ {
+ label: "Industri",
+ value: "Kesehatan",
+ },
+ {
+ label: "Jumlah Partisipan ",
+ value: "0",
+ },
+ {
+ label: "Lokasi",
+ value: "Kuta Selatan, Bali",
+ },
+ {
+ label: "Tujuan Proyek",
+ value:
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ },
+ {
+ label: "Keuntungan",
+ value:
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ },
+];
diff --git a/app/(application)/admin/collaboration/[id]/group.tsx b/app/(application)/admin/collaboration/[id]/group.tsx
new file mode 100644
index 0000000..85bf7cd
--- /dev/null
+++ b/app/(application)/admin/collaboration/[id]/group.tsx
@@ -0,0 +1,97 @@
+import {
+ BaseBox,
+ Grid,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
+import { useLocalSearchParams } from "expo-router";
+
+export default function AdminCollaborationGroup() {
+ const { id } = useLocalSearchParams();
+ console.log("params:", id);
+ return (
+ <>
+
+ }
+ >
+
+
+
+ {listData.map((item, i) => (
+
+
+ {item.label}
+
+
+ {item.value}
+
+
+ ))}
+
+
+
+
+ Anggota
+
+ {Array.from({ length: 10 }).map((_, i) => (
+
+
+ Username
+
+
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit.
+
+
+
+ ))}
+
+
+
+
+ >
+ );
+}
+
+const listData = [
+ {
+ label: "Admin Group",
+ value: "Bagas Banuna",
+ },
+ {
+ label: "Nama Group",
+ value: "Lorem ipsum dolor sit amet consectetur adipisicing elit.",
+ },
+ {
+ label: "Industri",
+ value: "Kesehatan",
+ },
+ {
+ label: "Jumlah Partisipan ",
+ value: "0",
+ },
+ {
+ label: "Lokasi",
+ value: "Kuta Selatan, Bali",
+ },
+ {
+ label: "Tujuan Proyek",
+ value:
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ },
+ {
+ label: "Keuntungan",
+ value:
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ },
+];
diff --git a/app/(application)/admin/collaboration/group.tsx b/app/(application)/admin/collaboration/group.tsx
index f00a9bd..a869f7e 100644
--- a/app/(application)/admin/collaboration/group.tsx
+++ b/app/(application)/admin/collaboration/group.tsx
@@ -1,10 +1,68 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import {
+ ActionIcon,
+ BaseBox,
+ Spacing,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle";
+import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue";
+import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage";
+import { ICON_SIZE_BUTTON } from "@/constants/constans-value";
+import { Octicons } from "@expo/vector-icons";
+import { router } from "expo-router";
+import { Divider } from "react-native-paper";
export default function AdminCollaborationGroup() {
return (
<>
-
- Admin Collaboration Group
+ }>
+
+
+
+
+
+
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+ }
+ onPress={() => {
+ router.push(`/admin/collaboration/${index}/group`);
+ }}
+ />
+ }
+ value2={
+ Username username
+ }
+ value3={
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit.
+ Blanditiis asperiores quidem deleniti architecto eaque et
+ nostrum, ad consequuntur eveniet quisquam quae voluptatum
+ ducimus! Dolorem nobis modi officia debitis, beatae
+ mollitia.
+
+ }
+ />
+ ))}
+
+
>
);
diff --git a/app/(application)/admin/collaboration/index.tsx b/app/(application)/admin/collaboration/index.tsx
index 5109ce6..648e023 100644
--- a/app/(application)/admin/collaboration/index.tsx
+++ b/app/(application)/admin/collaboration/index.tsx
@@ -1,11 +1,37 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import { StackCustom, ViewWrapper } from "@/components";
+import AdminComp_BoxDashboard from "@/components/_ShareComponent/Admin/BoxDashboard";
+import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage";
+import { MainColor } from "@/constants/color-palet";
+import { Entypo, FontAwesome } from "@expo/vector-icons";
export default function AdminCollaboration() {
return (
<>
-
- Admin Collaboration
+ }>
+
+ {listData.map((item, i) => (
+
+ ))}
+
>
);
}
+
+const listData = [
+ {
+ label: "Publish",
+ value: 4,
+ icon: ,
+ },
+ {
+ label: "Group",
+ value: 7,
+ icon: ,
+ },
+ {
+ label: "Reject",
+ value: 7,
+ icon: ,
+ },
+];
diff --git a/app/(application)/admin/collaboration/publish.tsx b/app/(application)/admin/collaboration/publish.tsx
index 442e866..3814a64 100644
--- a/app/(application)/admin/collaboration/publish.tsx
+++ b/app/(application)/admin/collaboration/publish.tsx
@@ -1,11 +1,70 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import {
+ ActionIcon,
+ BaseBox,
+ Spacing,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle";
+import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue";
+import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage";
+import { ICON_SIZE_BUTTON } from "@/constants/constans-value";
+import { Octicons } from "@expo/vector-icons";
+import { router } from "expo-router";
+import { Divider } from "react-native-paper";
export default function AdminCollaborationPublish() {
return (
<>
-
- Admin Collaboration Publish
+ }>
+
+
+
+
+
+
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+ }
+ onPress={() => {
+ router.push(`/admin/collaboration/${index}/publish`);
+ }}
+ />
+ }
+ value2={
+ Username username
+ }
+ value3={
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit.
+ Blanditiis asperiores quidem deleniti architecto eaque et
+ nostrum, ad consequuntur eveniet quisquam quae voluptatum
+ ducimus! Dolorem nobis modi officia debitis, beatae
+ mollitia.
+
+ }
+ />
+ ))}
+
+
>
);
}
+
diff --git a/app/(application)/admin/collaboration/reject.tsx b/app/(application)/admin/collaboration/reject.tsx
index b351ed7..0a54b09 100644
--- a/app/(application)/admin/collaboration/reject.tsx
+++ b/app/(application)/admin/collaboration/reject.tsx
@@ -1,10 +1,68 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import {
+ ActionIcon,
+ BaseBox,
+ Spacing,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle";
+import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue";
+import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage";
+import { ICON_SIZE_BUTTON } from "@/constants/constans-value";
+import { Octicons } from "@expo/vector-icons";
+import { router } from "expo-router";
+import { Divider } from "react-native-paper";
export default function AdminCollaborationReject() {
return (
<>
-
- Admin Collaboration Reject
+ }>
+
+
+
+
+
+
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+ }
+ onPress={() => {
+ router.push(`/admin/collaboration/${index}/reject`);
+ }}
+ />
+ }
+ value2={
+ Username username
+ }
+ value3={
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit.
+ Blanditiis asperiores quidem deleniti architecto eaque et
+ nostrum, ad consequuntur eveniet quisquam quae voluptatum
+ ducimus! Dolorem nobis modi officia debitis, beatae
+ mollitia.
+
+ }
+ />
+ ))}
+
+
>
);
diff --git a/app/(application)/admin/job/[id]/[status]/index.tsx b/app/(application)/admin/job/[id]/[status]/index.tsx
new file mode 100644
index 0000000..5d36e72
--- /dev/null
+++ b/app/(application)/admin/job/[id]/[status]/index.tsx
@@ -0,0 +1,110 @@
+import {
+ BadgeCustom,
+ BaseBox,
+ ButtonCustom,
+ DummyLandscapeImage,
+ Grid,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle";
+import { MainColor } from "@/constants/color-palet";
+import { useLocalSearchParams } from "expo-router";
+import _ from "lodash";
+
+export default function AdminJobDetailStatus() {
+ const { id, status } = useLocalSearchParams();
+
+ const colorBadge = () => {
+ if (status === "publish") {
+ return MainColor.green;
+ } else if (status === "review") {
+ return MainColor.orange;
+ } else if (status === "reject") {
+ return MainColor.red;
+ }
+ };
+
+ const listData = [
+ {
+ label: "Username",
+ value: "Bagas Banuna",
+ },
+ {
+ label: "Judul",
+ value: `Judul Proyek: ${id}Lorem ipsum dolor sit amet consectetur adipisicing elit.`,
+ },
+ {
+ label: "Status",
+ value: (
+
+ {_.startCase(status as string)}
+
+ ),
+ },
+ {
+ label: "Konten",
+ value: "Lorem ipsum dolor sit amet consectetur adipisicing elit.",
+ },
+ {
+ label: "Deskripsi",
+ value: "Lorem ipsum dolor sit amet consectetur adipisicing elit.",
+ },
+ // {
+ // label: "Poster",
+ // value: (
+ //
+ // Lihat Poster
+ //
+ // ),
+ // },
+ ];
+
+ return (
+ <>
+ }
+ >
+
+
+ {listData.map((item, i) => (
+
+
+ {item.label}
+
+
+ {item.value}
+
+
+ ))}
+
+ Poster
+
+
+
+
+
+ {status === "review" && (
+
+
+
+ Publish
+
+
+
+
+ Reject
+
+
+
+ )}
+
+ >
+ );
+}
diff --git a/app/(application)/admin/job/[status]/status.tsx b/app/(application)/admin/job/[status]/status.tsx
new file mode 100644
index 0000000..b8f398f
--- /dev/null
+++ b/app/(application)/admin/job/[status]/status.tsx
@@ -0,0 +1,76 @@
+import {
+ ActionIcon,
+ BaseBox,
+ SearchInput,
+ Spacing,
+ TextCustom,
+ ViewWrapper
+} from "@/components";
+import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage";
+import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle";
+import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue";
+import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage";
+import { ICON_SIZE_BUTTON } from "@/constants/constans-value";
+import { Octicons } from "@expo/vector-icons";
+import { router, useLocalSearchParams } from "expo-router";
+import _ from "lodash";
+import { Divider } from "react-native-paper";
+
+export default function AdminJobStatus() {
+ const { status } = useLocalSearchParams();
+ const rightComponent = (
+
+ );
+ return (
+ <>
+ }>
+
+
+
+
+
+
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+ }
+ onPress={() => {
+ router.push(`/admin/job/${index}/${status}`);
+ }}
+ />
+ }
+ value2={Username username}
+ value3={
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit.
+ Blanditiis asperiores quidem deleniti architecto eaque et
+ nostrum, ad consequuntur eveniet quisquam quae voluptatum
+ ducimus! Dolorem nobis modi officia debitis, beatae mollitia.
+
+ }
+ />
+ ))}
+
+
+ >
+ );
+}
diff --git a/app/(application)/admin/job/index.tsx b/app/(application)/admin/job/index.tsx
index a2aa5ca..00d4d44 100644
--- a/app/(application)/admin/job/index.tsx
+++ b/app/(application)/admin/job/index.tsx
@@ -1,11 +1,45 @@
-import { TextCustom, ViewWrapper } from "@/components";
+import { Spacing, StackCustom, ViewWrapper } from "@/components";
+import AdminComp_BoxDashboard from "@/components/_ShareComponent/Admin/BoxDashboard";
+import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage";
+import { MainColor } from "@/constants/color-palet";
+import { Entypo, FontAwesome, FontAwesome6 } from "@expo/vector-icons";
export default function AdminJob() {
return (
<>
- Admin Job
+
+
+
+ {listData.map((item, i) => (
+
+ ))}
+
>
);
}
+
+const listData = [
+ {
+ label: "Publish",
+ value: 4,
+ icon: ,
+ },
+ {
+ label: "Review",
+ value: 7,
+ icon: (
+
+ ),
+ },
+ {
+ label: "Reject",
+ value: 5,
+ icon: ,
+ },
+];
diff --git a/components/_Icon/IconArchive.tsx b/components/_Icon/IconArchive.tsx
index e952553..5dcf9c3 100644
--- a/components/_Icon/IconArchive.tsx
+++ b/components/_Icon/IconArchive.tsx
@@ -2,11 +2,11 @@ import { MainColor } from "@/constants/color-palet";
import { ICON_SIZE_SMALL } from "@/constants/constans-value";
import { Ionicons } from "@expo/vector-icons";
-export default function IconArchive({ color }: { color?: string }) {
+export default function IconArchive({ color, size }: { color?: string; size?: number }) {
return (
);
diff --git a/components/_ShareComponent/Admin/BoxDashboard.tsx b/components/_ShareComponent/Admin/BoxDashboard.tsx
index 4c85dae..d4cc6a1 100644
--- a/components/_ShareComponent/Admin/BoxDashboard.tsx
+++ b/components/_ShareComponent/Admin/BoxDashboard.tsx
@@ -3,7 +3,7 @@ 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";
+import { AccentColor, MainColor } from "@/constants/color-palet";
interface BoxDashboardProps {
item: {
@@ -37,7 +37,7 @@ export default function AdminComp_BoxDashboard({ item }: BoxDashboardProps) {
span={3}
style={{ alignItems: "flex-start", justifyContent: "center" }}
>
-
+
diff --git a/components/_ShareComponent/Admin/TableTitle.tsx b/components/_ShareComponent/Admin/TableTitle.tsx
new file mode 100644
index 0000000..18c1233
--- /dev/null
+++ b/components/_ShareComponent/Admin/TableTitle.tsx
@@ -0,0 +1,28 @@
+import Grid from "@/components/Grid/GridCustom";
+import TextCustom from "@/components/Text/TextCustom";
+
+export default function AdminTitleTable({
+ title1,
+ title2,
+ title3,
+}: {
+ title1: string;
+ title2: string;
+ title3: string;
+}) {
+ return (
+ <>
+
+
+ {title1}
+
+
+ {title2}
+
+
+ {title3}
+
+
+ >
+ );
+}
diff --git a/components/_ShareComponent/Admin/TableValue.tsx b/components/_ShareComponent/Admin/TableValue.tsx
new file mode 100644
index 0000000..59946c8
--- /dev/null
+++ b/components/_ShareComponent/Admin/TableValue.tsx
@@ -0,0 +1,56 @@
+import Grid from "@/components/Grid/GridCustom";
+import React from "react";
+import { View } from "react-native";
+import { Divider } from "react-native-paper";
+
+export default function AdminTableValue({
+ value1,
+ value2,
+ value3,
+}: {
+ value1: React.ReactNode;
+ value2: React.ReactNode;
+ value3: React.ReactNode;
+}) {
+ return (
+ <>
+
+
+
+ {value1}
+
+
+ {value2}
+
+
+ {value3}
+
+
+
+
+ >
+ );
+}
diff --git a/components/_ShareComponent/Admin/TitlePage.tsx b/components/_ShareComponent/Admin/TitlePage.tsx
new file mode 100644
index 0000000..416e222
--- /dev/null
+++ b/components/_ShareComponent/Admin/TitlePage.tsx
@@ -0,0 +1,11 @@
+import TextCustom from "@/components/Text/TextCustom";
+
+export default function AdminTitlePage({ title }: { title: string }) {
+ return (
+ <>
+
+ {title}
+
+ >
+ );
+}
diff --git a/components/_ShareComponent/SearchInput.tsx b/components/_ShareComponent/SearchInput.tsx
index 77dd84b..b73df2f 100644
--- a/components/_ShareComponent/SearchInput.tsx
+++ b/components/_ShareComponent/SearchInput.tsx
@@ -17,7 +17,7 @@ export default function SearchInput({
onPress,
iconLeft,
iconRight,
- containerStyle = { marginBottom: 0 },
+ containerStyle,
style,
...props
}: SearchInputProps) {
@@ -32,7 +32,7 @@ export default function SearchInput({
}
placeholder={placeholder}
borderRadius={50}
- containerStyle={containerStyle}
+ containerStyle={[containerStyle, { marginBottom: 0 }]}
{...props}
/>
);
diff --git a/components/_ShareComponent/TabsTwoHeaderCustom.tsx b/components/_ShareComponent/TabsTwoHeaderCustom.tsx
index 85dec26..0e46105 100644
--- a/components/_ShareComponent/TabsTwoHeaderCustom.tsx
+++ b/components/_ShareComponent/TabsTwoHeaderCustom.tsx
@@ -1,15 +1,16 @@
-import { MainColor, AccentColor } from "@/constants/color-palet";
+import { AccentColor, MainColor } from "@/constants/color-palet";
import { View } from "react-native";
import ButtonCustom from "../Button/ButtonCustom";
import Spacing from "./Spacing";
-export default function TabsTwoHeaderCustom ({
+export default function TabsTwoButtonCustom ({
leftValue,
rightValue,
leftText,
rightText,
activeCategory,
handlePress,
+ hideBackground,
}: {
leftValue: string;
rightValue: string;
@@ -17,6 +18,7 @@ export default function TabsTwoHeaderCustom ({
rightText: string;
activeCategory: string | null;
handlePress: (item: string) => void;
+ hideBackground?: boolean;
}) {
return (
<>
@@ -25,7 +27,7 @@ export default function TabsTwoHeaderCustom ({
flexDirection: "row",
alignItems: "center",
padding: 5,
- backgroundColor: MainColor.soft_darkblue,
+ backgroundColor: hideBackground ? "transparent" : MainColor.soft_darkblue,
borderRadius: 50,
width: "100%",
}}
diff --git a/screens/Admin/listPageAdmin.tsx b/screens/Admin/listPageAdmin.tsx
index e05ec4d..9b03995 100644
--- a/screens/Admin/listPageAdmin.tsx
+++ b/screens/Admin/listPageAdmin.tsx
@@ -57,9 +57,9 @@ const adminListMenu: NavbarItem[] = [
icon: "desktop-outline",
links: [
{ label: "Dashboard", link: "/admin/job" },
- { label: "Publish", link: "/admin/job/publish" },
- { label: "Review", link: "/admin/job/review" },
- { label: "Reject", link: "/admin/job/reject" },
+ { label: "Publish", link: "/admin/job/publish/status" },
+ { label: "Review", link: "/admin/job/review/status" },
+ { label: "Reject", link: "/admin/job/reject/status" },
],
},
{
diff --git a/screens/Authentication/LoginView.tsx b/screens/Authentication/LoginView.tsx
index 92d0b74..916c473 100644
--- a/screens/Authentication/LoginView.tsx
+++ b/screens/Authentication/LoginView.tsx
@@ -30,9 +30,9 @@ export default function LoginView() {
const id = randomAlfabet + randomNumber + fixNumber;
console.log("login user id :", id);
- // router.navigate("/verification");
+ 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}`);
@@ -84,9 +84,9 @@ export default function LoginView() {
- router.navigate("/admin/user-access")}>
+ {/* router.navigate("/admin/job")}>
Admin ( Delete Soon )
-
+ */}
);