diff --git a/app/(application)/(user)/_layout.tsx b/app/(application)/(user)/_layout.tsx
index 1f557d5..a037bbd 100644
--- a/app/(application)/(user)/_layout.tsx
+++ b/app/(application)/(user)/_layout.tsx
@@ -344,7 +344,7 @@ export default function UserLayout() {
name="donation/(tabs)"
options={{
title: "Donasi",
- headerLeft: () => ,
+ headerLeft: () => ,
}}
/>
@@ -362,6 +362,122 @@ export default function UserLayout() {
headerLeft: () => ,
}}
/>
+
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+ (
+ router.navigate(`/donation/(tabs)/my-donation`)}
+ />
+ ),
+ }}
+ />
+ (
+ router.navigate(`/donation/(tabs)/my-donation`)}
+ />
+ ),
+ }}
+ />
+
{/* ========== End Donation Section ========= */}
{/* ========== Job Section ========= */}
diff --git a/app/(application)/(user)/donation/(tabs)/index.tsx b/app/(application)/(user)/donation/(tabs)/index.tsx
index 3f0709a..dc91c4f 100644
--- a/app/(application)/(user)/donation/(tabs)/index.tsx
+++ b/app/(application)/(user)/donation/(tabs)/index.tsx
@@ -1,15 +1,9 @@
import {
- BaseBox,
- DummyLandscapeImage,
- FloatingButton,
- Grid,
- ProgressCustom,
- StackCustom,
- TextCustom,
- ViewWrapper,
+ FloatingButton,
+ ViewWrapper
} from "@/components";
+import Donation_BoxPublish from "@/screens/Donation/BoxPublish";
import { router } from "expo-router";
-import { View } from "react-native";
export default function DonationBeranda() {
return (
@@ -20,36 +14,7 @@ export default function DonationBeranda() {
}
>
{Array.from({ length: 10 }).map((_, index) => (
-
-
-
-
-
-
-
-
-
-
-
-
- Judul Donasi: Lorem ipsum dolor sit amet consectetur
- adipisicing elit.
-
- Sisa hari: 0
-
-
- {/*
- Terkumpul : Rp 300.000
- */}
-
-
-
-
+
))}
);
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]/(news)/[news]/edit-news.tsx b/app/(application)/(user)/donation/[id]/(news)/[news]/edit-news.tsx
new file mode 100644
index 0000000..a1b21fc
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(news)/[news]/edit-news.tsx
@@ -0,0 +1,54 @@
+import {
+ ButtonCenteredOnly,
+ ButtonCustom,
+ InformationBox,
+ LandscapeFrameUploaded,
+ Spacing,
+ StackCustom,
+ TextAreaCustom,
+ TextInputCustom,
+ ViewWrapper,
+} from "@/components";
+import { router } from "expo-router";
+
+export default function DonationEditNews() {
+ return (
+
+
+
+
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
+ Upload
+
+
+
+
+
+
+ {
+ router.back();
+ }}
+ >
+ Update
+
+
+
+
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(news)/[news]/index.tsx b/app/(application)/(user)/donation/[id]/(news)/[news]/index.tsx
new file mode 100644
index 0000000..55ea43c
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(news)/[news]/index.tsx
@@ -0,0 +1,95 @@
+import {
+ AlertDefaultSystem,
+ BackButton,
+ BaseBox,
+ DotButton,
+ DrawerCustom,
+ DummyLandscapeImage,
+ MenuDrawerDynamicGrid,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import { IconEdit } from "@/components/_Icon";
+import { IconTrash } from "@/components/_Icon/IconTrash";
+import dayjs from "dayjs";
+import { router, Stack, useLocalSearchParams } from "expo-router";
+import { useState } from "react";
+
+export default function DonationNews() {
+ const { id, news } = useLocalSearchParams();
+ const [openDrawer, setOpenDrawer] = useState(false);
+
+ return (
+ <>
+ ,
+ headerRight: () => setOpenDrawer(true)} />,
+ }}
+ />
+
+
+
+
+ {dayjs().format("DD MMM YYYY")}
+
+
+
+
+
+ Judul Berita
+
+
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente
+ est id temporibus perferendis eos reiciendis reprehenderit tempora
+ ut quibusdam dolores facilis rerum exercitationem recusandae quis
+ neque, adipisci dolorum, aspernatur labore?
+
+
+
+
+
+ setOpenDrawer(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Edit Berita",
+ path: `/donation/${id}/(news)/${news}/edit-news` as any,
+ },
+ {
+ icon: ,
+ label: "Hapus Berita",
+ path: `` as any,
+ color: "red",
+ },
+ ]}
+ onPressItem={(item) => {
+ if ((item.path as any) === "") {
+ setOpenDrawer(false);
+ AlertDefaultSystem({
+ title: "Hapus Berita",
+ message: "Apakah Anda yakin ingin menghapus berita ini?",
+ textLeft: "Batal",
+ textRight: "Hapus",
+ onPressRight: () => {
+ router.back();
+ },
+ });
+ } else {
+ router.navigate(item.path as any);
+ setOpenDrawer(false);
+ }
+ }}
+ />
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(news)/add-news.tsx b/app/(application)/(user)/donation/[id]/(news)/add-news.tsx
new file mode 100644
index 0000000..d9e6d6e
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(news)/add-news.tsx
@@ -0,0 +1,54 @@
+import {
+ ButtonCenteredOnly,
+ ButtonCustom,
+ InformationBox,
+ LandscapeFrameUploaded,
+ Spacing,
+ StackCustom,
+ TextAreaCustom,
+ TextInputCustom,
+ ViewWrapper,
+} from "@/components";
+import { router } from "expo-router";
+
+export default function DonationAddNews() {
+ return (
+
+
+
+
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
+ Upload
+
+
+
+
+
+
+ {
+ router.back();
+ }}
+ >
+ Simpan
+
+
+
+
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(news)/list-of-news.tsx b/app/(application)/(user)/donation/[id]/(news)/list-of-news.tsx
new file mode 100644
index 0000000..1035efa
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(news)/list-of-news.tsx
@@ -0,0 +1,67 @@
+import {
+ BackButton,
+ BaseBox,
+ DrawerCustom,
+ Grid,
+ MenuDrawerDynamicGrid,
+ TextCustom,
+ ViewWrapper
+} from "@/components";
+import { IconPlus } from "@/components/_Icon";
+import dayjs from "dayjs";
+import { router, Stack, useLocalSearchParams } from "expo-router";
+import { useState } from "react";
+
+export default function DonationRecapOfNews() {
+ const { id } = useLocalSearchParams();
+ const [openDrawer, setOpenDrawer] = useState(false);
+
+ return (
+ <>
+ , }}
+ />
+
+ {Array.from({ length: 15 }).map((_, index) => (
+
+
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit.
+
+
+
+
+ {dayjs().format("DD MMM YYYY")}
+
+
+
+
+ ))}
+
+
+ setOpenDrawer(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Tambah Berita",
+ path: `/donation/${id}/(news)/add-news`,
+ },
+ ]}
+ onPressItem={(item) => {
+ console.log("PATH ", item.path);
+ router.navigate(item.path as any);
+ setOpenDrawer(false);
+ }}
+ />
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(news)/recap-of-news.tsx b/app/(application)/(user)/donation/[id]/(news)/recap-of-news.tsx
new file mode 100644
index 0000000..15db481
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(news)/recap-of-news.tsx
@@ -0,0 +1,68 @@
+import {
+ BackButton,
+ BaseBox,
+ DotButton,
+ DrawerCustom,
+ Grid,
+ MenuDrawerDynamicGrid,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import { IconPlus } from "@/components/_Icon";
+import dayjs from "dayjs";
+import { router, Stack, useLocalSearchParams } from "expo-router";
+import { useState } from "react";
+
+export default function DonationRecapOfNews() {
+ const { id } = useLocalSearchParams();
+ const [openDrawer, setOpenDrawer] = useState(false);
+
+ return (
+ <>
+ ,
+ headerRight: () => setOpenDrawer(true)} />,
+ }}
+ />
+
+ {Array.from({ length: 15 }).map((_, index) => (
+
+
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit.
+
+
+
+ {dayjs().format("DD MMM YYYY")}
+
+
+
+ ))}
+
+
+ setOpenDrawer(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Tambah Berita",
+ path: `/donation/${id}/(news)/add-news`,
+ },
+ ]}
+ onPressItem={(item) => {
+ console.log("PATH ", item.path);
+ router.navigate(item.path as any);
+ setOpenDrawer(false);
+ }}
+ />
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(transaction-flow)/[transaction]/invoice.tsx b/app/(application)/(user)/donation/[id]/(transaction-flow)/[transaction]/invoice.tsx
new file mode 100644
index 0000000..ebc42e5
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(transaction-flow)/[transaction]/invoice.tsx
@@ -0,0 +1,110 @@
+import {
+ BaseBox,
+ ButtonCenteredOnly,
+ ButtonCustom,
+ Grid,
+ InformationBox,
+ Spacing,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import { MainColor } from "@/constants/color-palet";
+import { router, useLocalSearchParams } from "expo-router";
+
+export default function DonationInvoice() {
+ const { id } = useLocalSearchParams();
+ return (
+ <>
+
+
+
+
+
+ Nama BANK
+ Nama Penerima
+
+
+
+
+
+
+ 4567898765433567
+
+
+
+ Salin
+
+
+
+
+
+
+
+
+ Jumlah Transaksi
+
+
+
+
+
+
+
+ Rp. 1.000.000
+
+
+
+ Salin
+
+
+
+
+
+
+
+
+ Upload bukti transfer anda.
+ {
+ router.push("/(application)/(image)/take-picture/123");
+ }}
+ icon="upload"
+ >
+ Upload
+
+
+
+
+ {
+ router.push(`/donation/${id}/(transaction-flow)/process`);
+ }}
+ >
+ Saya Sudah Transfer
+
+
+
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(transaction-flow)/[transaction]/process.tsx b/app/(application)/(user)/donation/[id]/(transaction-flow)/[transaction]/process.tsx
new file mode 100644
index 0000000..0ffb1d7
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(transaction-flow)/[transaction]/process.tsx
@@ -0,0 +1,45 @@
+import {
+ BaseBox,
+ Grid,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import { MainColor } from "@/constants/color-palet";
+import { Ionicons } from "@expo/vector-icons";
+import { ActivityIndicator } from "react-native";
+
+export default function DonationProcess() {
+ return (
+ <>
+
+
+
+
+ Admin sedang memproses transaksi donasimu
+
+
+
+
+
+
+
+
+
+ Hubungi admin jika tidak kunjung di proses! Klik pada logo
+ Whatsapp ini.
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx b/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx
new file mode 100644
index 0000000..1af686a
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx
@@ -0,0 +1,81 @@
+import {
+ BaseBox,
+ BoxButtonOnFooter,
+ ButtonCustom,
+ Grid,
+ TextCustom,
+ TextInputCustom,
+ ViewWrapper,
+} from "@/components";
+import { MainColor } from "@/constants/color-palet";
+import { ICON_SIZE_SMALL } from "@/constants/constans-value";
+import { Ionicons } from "@expo/vector-icons";
+import { router, useLocalSearchParams } from "expo-router";
+
+export default function InvestmentInputDonation() {
+ const { id } = useLocalSearchParams();
+ const bottomComponent = (
+
+ router.replace(`/donation/${id}/select-bank`)}
+ >
+ Lanjutan
+
+
+ );
+ return (
+ <>
+
+ {listData.map((item, i) => (
+
+
+
+
+ Rp. {item.label}
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ Minimal donasi Rp. 10.000
+
+
+
+ >
+ );
+}
+
+const listData = [
+ {
+ label: "25.000",
+ value: 25000,
+ },
+ {
+ label: "50.000",
+ value: 50000,
+ },
+ {
+ label: "100.000",
+ value: 100000,
+ },
+ {
+ label: "250.000",
+ value: 250000,
+ },
+];
diff --git a/app/(application)/(user)/donation/[id]/(transaction-flow)/select-bank.tsx b/app/(application)/(user)/donation/[id]/(transaction-flow)/select-bank.tsx
new file mode 100644
index 0000000..4564373
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/(transaction-flow)/select-bank.tsx
@@ -0,0 +1,44 @@
+import {
+ BaseBox,
+ BoxButtonOnFooter,
+ ButtonCustom,
+ ViewWrapper,
+} from "@/components";
+import { RadioCustom, RadioGroup } from "@/components/Radio/RadioCustom";
+import { dummyMasterBank } from "@/lib/dummy-data/_master/bank";
+import { router, useLocalSearchParams } from "expo-router";
+import { useState } from "react";
+
+export default function DonationSelectBank() {
+ const { id, transaction } = useLocalSearchParams();
+ const [value, setValue] = useState("");
+
+ const buttonSubmit = () => {
+ return (
+ <>
+
+
+ router.replace(
+ `/(application)/(user)/donation/${id}/(transaction-flow)/${transaction}/invoice`
+ )
+ }
+ >
+ Pilih
+
+
+ >
+ );
+ };
+ return (
+
+
+ {dummyMasterBank.map((item) => (
+
+
+
+ ))}
+
+
+ );
+}
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..f483fe7
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/[status]/detail.tsx
@@ -0,0 +1,115 @@
+import {
+ BackButton,
+ DotButton,
+ DrawerCustom,
+ MenuDrawerDynamicGrid,
+ Spacing,
+ ViewWrapper,
+} from "@/components";
+import { IconEdit, IconNews } 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 Donation_ProgressSection from "@/screens/Donation/ProgressSection";
+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 [openDrawerPublish, setOpenDrawerPublish] = 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)} />
+ ) : status === "publish" ? (
+ setOpenDrawerPublish(true)} />
+ ) : null,
+ }}
+ />
+
+
+ }
+ />
+
+
+
+
+
+
+ setOpenDrawer(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Edit Donasi",
+ path: `/donation/${id}/edit`,
+ },
+ {
+ icon: ,
+ label: "Edit Cerita",
+ path: `/donation/${id}/edit-story`,
+ },
+ {
+ icon: (
+
+ ),
+ label: "Edit Rekening",
+ path: `/donation/${id}/edit-rekening`,
+ },
+ ]}
+ columns={4}
+ onPressItem={handlePress as any}
+ />
+
+
+ setOpenDrawerPublish(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Rekap Kabar",
+ path: `/donation/${id}/(news)/recap-of-news`,
+ },
+ ]}
+ onPressItem={(item) => {
+ console.log("PATH ", item.path);
+ router.navigate(item.path as any);
+ setOpenDrawerPublish(false);
+ }}
+ />
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/detail-story.tsx b/app/(application)/(user)/donation/[id]/detail-story.tsx
new file mode 100644
index 0000000..93bf712
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/detail-story.tsx
@@ -0,0 +1,28 @@
+import {
+ DummyLandscapeImage,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import { useLocalSearchParams } from "expo-router";
+
+export default function DonationDetailStory() {
+ const { id } = useLocalSearchParams();
+ return (
+
+
+
+ Lorem {id} ipsum dolor, sit amet consectetur adipisicing elit. Fuga
+ quasi nam nesciunt nisi corporis alias modi, pariatur sit totam rem
+ fugiat ex similique magni, aliquam maiores officiis iure at adipisci.
+
+
+
+ Lorem {id} ipsum dolor, sit amet consectetur adipisicing elit. Fuga
+ quasi nam nesciunt nisi corporis alias modi, pariatur sit totam rem
+ fugiat ex similique magni, aliquam maiores officiis iure at adipisci.
+
+
+
+ );
+}
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]/fund-disbursement.tsx b/app/(application)/(user)/donation/[id]/fund-disbursement.tsx
new file mode 100644
index 0000000..6f28714
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/fund-disbursement.tsx
@@ -0,0 +1,67 @@
+import {
+ BaseBox,
+ ButtonCenteredOnly,
+ Grid,
+ InformationBox,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import dayjs from "dayjs";
+import { router, useLocalSearchParams } from "expo-router";
+
+export default function DonationFundDisbursement() {
+ const { id } = useLocalSearchParams();
+ return (
+ <>
+
+
+
+
+
+
+ Rp. 0
+
+ Total Pencairan Dana
+
+
+
+ 0 kali
+
+ Akumulasi Pencairan
+
+
+
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+
+
+
+ Pencairan ke - {index + 1}
+
+
+ {dayjs().format("DD MMM YYYY")}
+
+
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit.
+ Nesciunt dolor ad sit? Eaque rem nihil natus, id, esse possimus
+ perferendis provident velit illo consectetur distinctio ab
+ accusantium quis earum omnis!
+
+ {
+ router.navigate(`/(application)/(file)/${id}`);
+ }}
+ icon="file-text"
+ >
+ Bukti Transaksi
+
+
+
+ ))}
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/index.tsx b/app/(application)/(user)/donation/[id]/index.tsx
new file mode 100644
index 0000000..5cea0cd
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/index.tsx
@@ -0,0 +1,78 @@
+import {
+ BackButton,
+ BoxButtonOnFooter,
+ ButtonCustom,
+ DotButton,
+ DrawerCustom,
+ MenuDrawerDynamicGrid,
+ StackCustom,
+ ViewWrapper,
+} from "@/components";
+import { IconNews } from "@/components/_Icon";
+import Donation_ComponentBoxDetailData from "@/screens/Donation/ComponentBoxDetailData";
+import Donation_ComponentInfoFundrising from "@/screens/Donation/ComponentInfoFundrising";
+import Donation_ComponentStoryFunrising from "@/screens/Donation/ComponentStoryFunrising";
+import Donation_ProgressSection from "@/screens/Donation/ProgressSection";
+import { router, Stack, useLocalSearchParams } from "expo-router";
+import { useState } from "react";
+
+export default function DonasiDetailBeranda() {
+ const { id } = useLocalSearchParams();
+ const [openDrawer, setOpenDrawer] = useState(false);
+
+ const buttonSection = (
+ <>
+
+
+ router.navigate(`/donation/${id}/(transaction-flow)`)
+ }
+ >
+ Donasi
+
+
+ >
+ );
+
+ return (
+ <>
+ ,
+ headerRight: () => setOpenDrawer(true)} />,
+ }}
+ />
+
+
+ }
+ />
+
+
+
+
+
+ setOpenDrawer(false)}
+ height={"auto"}
+ >
+ ,
+ label: "Rekap Kabar",
+ path: `/donation/${id}/(news)/recap-of-news`,
+ },
+ ]}
+ onPressItem={(item) => {
+ console.log("PATH ", item.path);
+ router.navigate(item.path as any);
+ setOpenDrawer(false);
+ }}
+ />
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/infromation-fundrising.tsx b/app/(application)/(user)/donation/[id]/infromation-fundrising.tsx
new file mode 100644
index 0000000..4bf6d94
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/infromation-fundrising.tsx
@@ -0,0 +1,44 @@
+import {
+ AvatarCustom,
+ BaseBox,
+ ButtonCustom,
+ CenterCustom,
+ Grid,
+ Spacing,
+ TextCustom,
+ ViewWrapper
+} from "@/components";
+import Donation_BoxPublish from "@/screens/Donation/BoxPublish";
+import React from "react";
+
+export default function DonationInformationFunrising() {
+ return (
+ <>
+
+
+
+
+
+
+
+ @Username
+
+
+
+
+
+ Kunjungi Profile
+
+
+
+
+
+
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+ ))}
+
+ >
+ );
+}
diff --git a/app/(application)/(user)/donation/[id]/list-of-donatur.tsx b/app/(application)/(user)/donation/[id]/list-of-donatur.tsx
new file mode 100644
index 0000000..d9f65af
--- /dev/null
+++ b/app/(application)/(user)/donation/[id]/list-of-donatur.tsx
@@ -0,0 +1,47 @@
+import {
+ BaseBox,
+ Grid,
+ StackCustom,
+ TextCustom,
+ ViewWrapper,
+} from "@/components";
+import { MainColor } from "@/constants/color-palet";
+import { FontAwesome6 } from "@expo/vector-icons";
+import dayjs from "dayjs";
+
+export default function Donation_ListOfDonatur() {
+ return (
+ <>
+
+ {Array.from({ length: 10 }).map((_, index) => (
+
+
+
+
+
+
+
+
+ Username
+
+ Berdonas sebesar
+
+ Rp. 100.000
+
+ {dayjs().format("DD MMM YYYY")}
+
+
+
+
+ ))}
+
+ >
+ );
+}
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/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx b/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx
index eec7c2b..f541987 100644
--- a/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx
+++ b/app/(application)/(user)/investment/[id]/(transaction-flow)/process.tsx
@@ -16,7 +16,7 @@ export default function InvestmentProcess() {
- Admin sedang memproses transaksimu
+ Admin sedang memproses transaksi investasimu
diff --git a/components/Button/ButtonCenteredOnly.tsx b/components/Button/ButtonCenteredOnly.tsx
index 8ec937a..0b7b09c 100644
--- a/components/Button/ButtonCenteredOnly.tsx
+++ b/components/Button/ButtonCenteredOnly.tsx
@@ -7,7 +7,7 @@ import ButtonCustom from "./ButtonCustom";
interface ButtonCenteredOnlyProps {
children?: React.ReactNode;
- icon?: "plus" | "upload";
+ icon?: "plus" | "upload" | string;
onPress: () => void;
}
export default function ButtonCenteredOnly({
@@ -19,7 +19,7 @@ export default function ButtonCenteredOnly({
+
}
style={[GStyles.buttonCentered50Percent]}
>
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/BoxPublish.tsx b/screens/Donation/BoxPublish.tsx
new file mode 100644
index 0000000..e3da36a
--- /dev/null
+++ b/screens/Donation/BoxPublish.tsx
@@ -0,0 +1,41 @@
+import {
+ BaseBox,
+ Grid,
+ DummyLandscapeImage,
+ StackCustom,
+ TextCustom,
+ ProgressCustom,
+} from "@/components";
+import { View } from "react-native";
+
+export default function Donation_BoxPublish({ id }: { id: string }) {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ Judul Donasi: Lorem ipsum dolor sit amet consectetur
+ adipisicing elit.
+
+ Sisa hari: 0
+
+
+ {/*
+ Terkumpul : Rp 300.000
+ */}
+
+
+
+
+ >
+ );
+}
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..de28e70
--- /dev/null
+++ b/screens/Donation/ComponentBoxDetailData.tsx
@@ -0,0 +1,52 @@
+import {
+ BaseBox,
+ StackCustom,
+ DummyLandscapeImage,
+ TextCustom,
+ Grid,
+} from "@/components";
+import React from "react";
+import { View } from "react-native";
+
+export default function Donation_ComponentBoxDetailData({
+ bottomSection,
+}: {
+ bottomSection?: React.ReactNode;
+}) {
+ return (
+ <>
+
+
+
+
+
+ Judul Donasi: Lorem, ipsum dolor sit amet consectetur adipisicing
+ elit.
+
+ Durasi: 30 hari
+
+
+
+
+
+ Target Dana
+
+ Rp. 7.500.000
+
+
+
+
+
+ Kategori
+
+ Kegiatan Sosial
+
+
+
+
+ {bottomSection}
+
+
+ >
+ );
+}
diff --git a/screens/Donation/ComponentInfoFundrising.tsx b/screens/Donation/ComponentInfoFundrising.tsx
new file mode 100644
index 0000000..20a95bf
--- /dev/null
+++ b/screens/Donation/ComponentInfoFundrising.tsx
@@ -0,0 +1,48 @@
+import {
+ AvatarUsernameAndOtherComponent,
+ BaseBox,
+ Grid,
+ InformationBox,
+ StackCustom,
+ 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_ComponentInfoFundrising({
+ id,
+}: {
+ id: string;
+}) {
+ return (
+ <>
+
+
+
+
+
+ Informasi Penggalang Dana
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/screens/Donation/ComponentStoryFunrising.tsx b/screens/Donation/ComponentStoryFunrising.tsx
new file mode 100644
index 0000000..6eb9856
--- /dev/null
+++ b/screens/Donation/ComponentStoryFunrising.tsx
@@ -0,0 +1,42 @@
+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({
+ id,
+}: {
+ id: string;
+}) {
+ 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?
+
+
+
+ >
+ );
+}
diff --git a/screens/Donation/ProgressSection.tsx b/screens/Donation/ProgressSection.tsx
new file mode 100644
index 0000000..b0fcf5b
--- /dev/null
+++ b/screens/Donation/ProgressSection.tsx
@@ -0,0 +1,70 @@
+import {
+ ClickableCustom,
+ Grid,
+ ProgressCustom,
+ Spacing,
+ TextCustom,
+} from "@/components";
+import { MainColor } from "@/constants/color-palet";
+import { ICON_SIZE_MEDIUM } from "@/constants/constans-value";
+import { Ionicons, MaterialIcons } from "@expo/vector-icons";
+import { router } from "expo-router";
+import { View } from "react-native";
+
+export default function Donation_ProgressSection({ id }: { id: string }) {
+ return (
+ <>
+
+
+
+
+
+ router.push(`/donation/${id}/list-of-donatur`)}
+ >
+
+
+
+ Donatur
+
+
+
+
+ router.push(`/donation/${id}/(news)/list-of-news`)}
+ >
+
+
+
+ Kabar Terbaru
+
+
+
+
+ router.push(`/donation/${id}/fund-disbursement`)}
+ >
+
+
+
+ Pencairan Dana
+
+
+
+
+
+ >
+ );
+}