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 + + + + + + + ); +}