diff --git a/app/(application)/(user)/_layout.tsx b/app/(application)/(user)/_layout.tsx
index 1f557d5..f912b2b 100644
--- a/app/(application)/(user)/_layout.tsx
+++ b/app/(application)/(user)/_layout.tsx
@@ -362,6 +362,36 @@ export default function UserLayout() {
headerLeft: () => ,
}}
/>
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+
+
{/* ========== End Donation Section ========= */}
{/* ========== Job Section ========= */}
diff --git a/app/(application)/(user)/donation/(tabs)/status.tsx b/app/(application)/(user)/donation/(tabs)/status.tsx
index 7fd35ad..0bd0bfd 100644
--- a/app/(application)/(user)/donation/(tabs)/status.tsx
+++ b/app/(application)/(user)/donation/(tabs)/status.tsx
@@ -1,15 +1,7 @@
-import {
- Grid,
- BaseBox,
- DummyLandscapeImage,
- ScrollableCustom,
- StackCustom,
- TextCustom,
- ViewWrapper,
-} from "@/components";
+import { ScrollableCustom, ViewWrapper } from "@/components";
import { dummyMasterStatus } from "@/lib/dummy-data/_master/status";
+import Donasi_BoxStatus from "@/screens/Donation/BoxStatus";
import { useState } from "react";
-import { View } from "react-native";
export default function DonationStatus() {
const [activeCategory, setActiveCategory] = useState(
@@ -35,39 +27,11 @@ export default function DonationStatus() {
return (
{Array.from({ length: 10 }).map((_, index) => (
-
-
-
-
-
-
-
-
-
-
-
- Judul Donasi: {activeCategory} Lorem ipsum dolor sit amet
- consectetur adipisicing elit.
-
-
-
- Target Dana
-
- Rp. 7.500.000
-
-
- {/*
- Terkumpul : Rp 300.000
- */}
-
-
-
-
+ id={index.toString()}
+ status={activeCategory as string}
+ />
))}
);
diff --git a/app/(application)/(user)/donation/[id]/[status]/detail.tsx b/app/(application)/(user)/donation/[id]/[status]/detail.tsx
new file mode 100644
index 0000000..bcf6f2c
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/[status]/detail.tsx
@@ -0,0 +1,86 @@
+import {
+ BackButton,
+ DotButton,
+ DrawerCustom,
+ MenuDrawerDynamicGrid,
+ Spacing,
+ ViewWrapper,
+} from "@/components";
+import { IconEdit } from "@/components/_Icon";
+import { IMenuDrawerItem } from "@/components/_Interface/types";
+import { MainColor } from "@/constants/color-palet";
+import { ICON_SIZE_SMALL } from "@/constants/constans-value";
+import Donation_ButtonStatusSection from "@/screens/Donation/ButtonStatusSection";
+import Donation_ComponentBoxDetailData from "@/screens/Donation/ComponentBoxDetailData";
+import Donation_ComponentStoryFunrising from "@/screens/Donation/ComponentStoryFunrising";
+import { FontAwesome6 } from "@expo/vector-icons";
+import { router, Stack, useLocalSearchParams } from "expo-router";
+import _ from "lodash";
+import { useState } from "react";
+
+export default function DonasiDetailStatus() {
+ const { id, status } = useLocalSearchParams();
+ const [openDrawer, setOpenDrawer] = useState(false);
+
+ const handlePress = (item: IMenuDrawerItem) => {
+ console.log("PATH ", item.path);
+ router.navigate(item.path as any);
+ setOpenDrawer(false);
+ };
+
+ return (
+ <>
+ ,
+ headerRight: () =>
+ status === "draft" ? (
+ setOpenDrawer(true)} />
+ ) : null,
+ }}
+ />
+
+
+
+
+
+
+
+
+ setOpenDrawer(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Edit Donasi",
+ path: `/donation/${id}/edit`,
+ },
+ {
+ icon: ,
+ label: "Edit Cerita Penggalang",
+ path: `/donation/${id}/edit-story`,
+ },
+ {
+ icon: (
+
+ ),
+ label: "Edit Rekening",
+ path: `/donation/${id}/edit-rekening`,
+ },
+ ]}
+ columns={4}
+ onPressItem={handlePress as any}
+ />
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/edit-rekening.tsx b/app/(application)/(user)/donation/[id]/edit-rekening.tsx
new file mode 100644
index 0000000..915a7b9
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/edit-rekening.tsx
@@ -0,0 +1,32 @@
+import { ViewWrapper, StackCustom, InformationBox, TextInputCustom, Spacing, ButtonCustom } from "@/components";
+import { router } from "expo-router";
+
+export default function DonationEditRekening() {
+ return (
+
+
+
+
+
+
+
+ {
+ router.back();
+ }}
+ >
+ Update
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/app/(application)/(user)/donation/[id]/edit-story.tsx b/app/(application)/(user)/donation/[id]/edit-story.tsx
new file mode 100644
index 0000000..d21bfad
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/edit-story.tsx
@@ -0,0 +1,56 @@
+import {
+ ButtonCenteredOnly,
+ ButtonCustom,
+ InformationBox,
+ LandscapeFrameUploaded,
+ Spacing,
+ StackCustom,
+ TextAreaCustom,
+ ViewWrapper
+} from "@/components";
+import { router } from "expo-router";
+
+export default function DonationEditStory() {
+ return (
+
+
+
+
+
+
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
+ Upload
+
+
+
+
+
+ {
+ router.back();
+ }}
+ >
+ Update
+
+
+
+
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/edit.tsx b/app/(application)/(user)/donation/[id]/edit.tsx
new file mode 100644
index 0000000..7856b6b
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/edit.tsx
@@ -0,0 +1,79 @@
+import {
+ ButtonCenteredOnly,
+ ButtonCustom,
+ InformationBox,
+ LandscapeFrameUploaded,
+ SelectCustom,
+ Spacing,
+ StackCustom,
+ TextInputCustom,
+ ViewWrapper,
+} from "@/components";
+import { dummyDonasiDurasi } from "@/lib/dummy-data/donasi/durasi";
+import { dummyDonasiKategori } from "@/lib/dummy-data/donasi/kategori";
+import { router } from "expo-router";
+
+export default function DonationEdit() {
+ return (
+
+
+
+
+
+
+
+
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
+ Upload
+
+
+
+ ({
+ label: item.label,
+ value: item.value,
+ }))}
+ onChange={(value) => console.log(value)}
+ label="Pilih Kategori Donasi"
+ placeholder="Pilih Kategori Donasi"
+ required
+ />
+
+ ({
+ label: item.label,
+ value: item.value,
+ }))}
+ onChange={(value) => console.log(value)}
+ label="Pilih Durasi Donasi"
+ placeholder="Pilih Durasi Donasi"
+ required
+ />
+
+
+ {
+ router.back();
+ }}
+ >
+ Update
+
+
+
+
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/index.tsx b/app/(application)/(user)/donation/[id]/index.tsx
new file mode 100644
index 0000000..4d7a487
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/index.tsx
@@ -0,0 +1,9 @@
+import { TextCustom } from "@/components";
+
+export default function DonasiBeranda() {
+ return (
+ <>
+ Detail Donasi
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/create-story.tsx b/app/(application)/(user)/donation/create-story.tsx
index ffc7d6d..ded0208 100644
--- a/app/(application)/(user)/donation/create-story.tsx
+++ b/app/(application)/(user)/donation/create-story.tsx
@@ -32,7 +32,12 @@ export default function DonationCreateStory() {
/>
- {}} icon="upload">
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
Upload
diff --git a/app/(application)/(user)/donation/create.tsx b/app/(application)/(user)/donation/create.tsx
index 98f95d7..998ceeb 100644
--- a/app/(application)/(user)/donation/create.tsx
+++ b/app/(application)/(user)/donation/create.tsx
@@ -7,7 +7,7 @@ import {
Spacing,
StackCustom,
TextInputCustom,
- ViewWrapper
+ ViewWrapper,
} from "@/components";
import { dummyDonasiDurasi } from "@/lib/dummy-data/donasi/durasi";
import { dummyDonasiKategori } from "@/lib/dummy-data/donasi/kategori";
@@ -31,6 +31,17 @@ export default function DonationCreate() {
keyboardType="numeric"
/>
+
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
+ Upload
+
+
+
({
label: item.label,
@@ -52,17 +63,15 @@ export default function DonationCreate() {
placeholder="Pilih Durasi Donasi"
required
/>
-
-
- {
- router.push("/(application)/(image)/take-picture/123")
- }} icon="upload">
- Upload
-
- {
- router.push("/donation/create-story")
- }}>Selanjutnya
+ {
+ router.push("/donation/create-story");
+ }}
+ >
+ Selanjutnya
+
+
diff --git a/components/_ShareComponent/DummyLandscapeImage.tsx b/components/_ShareComponent/DummyLandscapeImage.tsx
index 6a5cc38..d4ee613 100644
--- a/components/_ShareComponent/DummyLandscapeImage.tsx
+++ b/components/_ShareComponent/DummyLandscapeImage.tsx
@@ -5,11 +5,13 @@ import { StyleSheet } from "react-native";
import ClickableCustom from "../Clickable/ClickableCustom";
import { router } from "expo-router";
-export default function DummyLandscapeImage({height}: {height?: number}) {
+export default function DummyLandscapeImage({height, unClickPath}: {height?: number, unClickPath?: boolean}) {
return (
{
- router.push("/(application)/(image)/preview-image/1");
+ if (!unClickPath) {
+ router.push("/(application)/(image)/preview-image/1");
+ }
}}
>
diff --git a/screens/Donation/BoxStatus.tsx b/screens/Donation/BoxStatus.tsx
new file mode 100644
index 0000000..74e0ccb
--- /dev/null
+++ b/screens/Donation/BoxStatus.tsx
@@ -0,0 +1,50 @@
+import {
+ BaseBox,
+ Grid,
+ DummyLandscapeImage,
+ StackCustom,
+ TextCustom,
+} from "@/components";
+import { View } from "react-native";
+
+export default function Donasi_BoxStatus({
+ id,
+ status,
+}: {
+ id: string;
+ status: string;
+}) {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+ Judul Donasi: {status} Lorem ipsum dolor sit amet consectetur
+ adipisicing elit.
+
+
+
+ Target Dana
+
+ Rp. 7.500.000
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/screens/Donation/ButtonStatusSection.tsx b/screens/Donation/ButtonStatusSection.tsx
new file mode 100644
index 0000000..f8d40b2
--- /dev/null
+++ b/screens/Donation/ButtonStatusSection.tsx
@@ -0,0 +1,121 @@
+import { AlertDefaultSystem, ButtonCustom, Grid } from "@/components";
+import { router } from "expo-router";
+
+export default function Donation_ButtonStatusSection({
+ status,
+}: {
+ status: string;
+}) {
+ const handleBatalkanReview = () => {
+ AlertDefaultSystem({
+ title: "Batalkan Review",
+ message: "Apakah Anda yakin ingin batalkan review ini?",
+ textLeft: "Batal",
+ textRight: "Ya",
+ onPressRight: () => {
+ console.log("Hapus");
+ router.back();
+ },
+ });
+ };
+
+ const handleAjukanReview = () => {
+ AlertDefaultSystem({
+ title: "Ajukan Review",
+ message: "Apakah Anda yakin ingin ajukan review ini?",
+ textLeft: "Batal",
+ textRight: "Ya",
+ onPressRight: () => {
+ console.log("Hapus");
+ router.back();
+ },
+ });
+ };
+
+ const handleEditKembali = () => {
+ AlertDefaultSystem({
+ title: "Edit Kembali",
+ message: "Apakah Anda yakin ingin edit kembali ini?",
+ textLeft: "Batal",
+ textRight: "Ya",
+ onPressRight: () => {
+ console.log("Hapus");
+ router.back();
+ },
+ });
+ };
+
+ const handleOpenDeleteAlert = () => {
+ AlertDefaultSystem({
+ title: "Hapus",
+ message: "Apakah Anda yakin ingin menghapus data ini?",
+ textLeft: "Batal",
+ textRight: "Hapus",
+ onPressRight: () => {
+ console.log("Hapus");
+ router.back();
+ },
+ });
+ };
+
+ const DeleteButton = () => {
+ return (
+ <>
+
+ Hapus
+
+ >
+ );
+ };
+
+ switch (status) {
+ case "publish":
+ return <>>;
+
+ case "review":
+ return (
+
+ Batalkan Review
+
+ );
+
+ case "draft":
+ return (
+ <>
+
+
+
+ Ajukan Review
+
+
+
+ {DeleteButton()}
+
+
+ >
+ );
+
+ case "reject":
+ return (
+ <>
+
+
+
+ Edit Kembali
+
+
+
+ {DeleteButton()}
+
+
+ >
+ );
+
+ default:
+ return Status Undifined;
+ }
+}
diff --git a/screens/Donation/ComponentBoxDetailData.tsx b/screens/Donation/ComponentBoxDetailData.tsx
new file mode 100644
index 0000000..9011048
--- /dev/null
+++ b/screens/Donation/ComponentBoxDetailData.tsx
@@ -0,0 +1,46 @@
+import {
+ BaseBox,
+ StackCustom,
+ DummyLandscapeImage,
+ TextCustom,
+ Grid,
+} from "@/components";
+import { View } from "react-native";
+
+export default function Donation_ComponentBoxDetailData() {
+ return (
+ <>
+
+
+
+
+
+ Judul Donasi: Lorem, ipsum dolor sit amet consectetur adipisicing
+ elit.
+
+ Durasi: 30 hari
+
+
+
+
+
+ Target Dana
+
+ Rp. 7.500.000
+
+
+
+
+
+ Kategori
+
+ Kegiatan Sosial
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/screens/Donation/ComponentStoryFunrising.tsx b/screens/Donation/ComponentStoryFunrising.tsx
new file mode 100644
index 0000000..0232411
--- /dev/null
+++ b/screens/Donation/ComponentStoryFunrising.tsx
@@ -0,0 +1,38 @@
+import { BaseBox, StackCustom, Grid, TextCustom } from "@/components";
+import { MainColor } from "@/constants/color-palet";
+import { ICON_SIZE_SMALL } from "@/constants/constans-value";
+import { Ionicons } from "@expo/vector-icons";
+
+export default function Donation_ComponentStoryFunrising() {
+ return (
+ <>
+
+
+
+
+
+ Cerita Penggalang Dana
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Totam,
+ iusto porro quae optio accusantium amet minima deleniti temporibus
+ cum voluptatem vel veniam doloribus blanditiis sapiente deserunt
+ distinctio eaque aliquid laboriosam?
+
+
+
+ >
+ );
+}
\ No newline at end of file