diff --git a/app/(application)/(image)/preview-image/[id]/index.tsx b/app/(application)/(image)/preview-image/[id]/index.tsx index 62a5455..240fd1c 100644 --- a/app/(application)/(image)/preview-image/[id]/index.tsx +++ b/app/(application)/(image)/preview-image/[id]/index.tsx @@ -1,8 +1,10 @@ import { CenterCustom, TextCustom, ViewWrapper } from "@/components"; import API_STRORAGE from "@/constants/base-url-api-strorage"; +import { MainColor } from "@/constants/color-palet"; import { Image } from "expo-image"; import { useLocalSearchParams } from "expo-router"; import React, { useState } from "react"; +import { View } from "react-native"; export default function PreviewImage() { const { id } = useLocalSearchParams(); @@ -11,18 +13,48 @@ export default function PreviewImage() { return ( {id ? ( - { - setIsLoading(false); + + > + {/* Main Image */} + { + setIsLoading(false); + }} + source={API_STRORAGE.GET({ fileId: id as string })} + contentFit="contain" + style={{ width: "100%", height: "100%" }} + // placeholder={require("@/assets/images/loading.gif")} + /> + + {/* Custom Loader Overlay */} + {isLoading && ( + + + + )} + ) : ( File not found diff --git a/app/(application)/(user)/donation/(tabs)/index.tsx b/app/(application)/(user)/donation/(tabs)/index.tsx index 5d843a1..eab5fb2 100644 --- a/app/(application)/(user)/donation/(tabs)/index.tsx +++ b/app/(application)/(user)/donation/(tabs)/index.tsx @@ -26,7 +26,6 @@ export default function DonationBeranda() { const response = await apiDonationGetAll({ category: "beranda" }); - console.log("[RES GET ALL]", JSON.stringify(response.data, null, 2)); setList(response.data); } catch (error) { diff --git a/app/(application)/(user)/donation/(tabs)/my-donation.tsx b/app/(application)/(user)/donation/(tabs)/my-donation.tsx index b0c0344..d7ec173 100644 --- a/app/(application)/(user)/donation/(tabs)/my-donation.tsx +++ b/app/(application)/(user)/donation/(tabs)/my-donation.tsx @@ -16,6 +16,7 @@ import { Href, router, useFocusEffect } from "expo-router"; import _ from "lodash"; import { useCallback, useState } from "react"; import { View } from "react-native"; +import Toast from "react-native-toast-message"; export default function DonationMyDonation() { const { user } = useAuth(); @@ -25,20 +26,25 @@ export default function DonationMyDonation() { useFocusEffect( useCallback(() => { onLoadData(); - }, [user?.id]) + }, [user?.id]), ); const onLoadData = async () => { + if (!user?.id) { + Toast.show({ + type: "error", + text1: "Load data gagal, user tidak ditemukan", + }); + return; + } + try { setLoadList(true); const response = await apiDonationGetAll({ category: "my-donation", authorId: user?.id, }); - console.log( - "[RES GET MY DONATION]", - JSON.stringify(response.data, null, 2) - ); + setList(response.data); } catch (error) { diff --git a/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx b/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx index 8b65b47..ef31135 100644 --- a/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx +++ b/app/(application)/(user)/donation/[id]/(transaction-flow)/index.tsx @@ -10,21 +10,32 @@ import { import { MainColor } from "@/constants/color-palet"; import { ICON_SIZE_SMALL } from "@/constants/constans-value"; import { LOCAL_STORAGE_KEY } from "@/constants/local-storage-key"; +import { useAuth } from "@/hooks/use-auth"; import { formatCurrencyDisplay } from "@/utils/formatCurrencyDisplay"; import { Ionicons } from "@expo/vector-icons"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { router, useLocalSearchParams } from "expo-router"; import { useState } from "react"; +import Toast from "react-native-toast-message"; export default function InvestmentInputDonation() { + const { user } = useAuth(); const { id } = useLocalSearchParams(); const [nominal, setNominal] = useState(0); const handlerSubmit = async () => { + if (!user?.id) { + Toast.show({ + type: "error", + text1: "User tidak ditemukan", + }); + + return; + } try { await AsyncStorage.setItem( LOCAL_STORAGE_KEY.transactionDonation, - JSON.stringify({ nominal: nominal.toString() }) + JSON.stringify({ nominal: nominal.toString() }), ); router.replace(`/donation/${id}/select-bank`); } catch (error) { diff --git a/app/(application)/admin/donation/[id]/disbursement-of-funds.tsx b/app/(application)/admin/donation/[id]/disbursement-of-funds.tsx index cde5b11..0b0a470 100644 --- a/app/(application)/admin/donation/[id]/disbursement-of-funds.tsx +++ b/app/(application)/admin/donation/[id]/disbursement-of-funds.tsx @@ -14,7 +14,11 @@ import { } from "@/components"; import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; import DIRECTORY_ID from "@/constants/directory-id"; -import { apiAdminDonationDetailById, apiAdminDonationDisbursementOfFundsCreated } from "@/service/api-admin/api-admin-donation"; +import { useAuth } from "@/hooks/use-auth"; +import { + apiAdminDonationDetailById, + apiAdminDonationDisbursementOfFundsCreated, +} from "@/service/api-admin/api-admin-donation"; import { uploadFileService } from "@/service/upload-service"; import { formatCurrencyDisplay } from "@/utils/formatCurrencyDisplay"; import pickFile from "@/utils/pickFile"; @@ -25,7 +29,7 @@ import Toast from "react-native-toast-message"; export default function AdminDonationDisbursementOfFunds() { const { id } = useLocalSearchParams(); - + const { user } = useAuth(); const [data, setData] = React.useState(null); const [isLoading, setIsLoading] = React.useState(false); @@ -40,7 +44,7 @@ export default function AdminDonationDisbursementOfFunds() { useFocusEffect( React.useCallback(() => { onLoadData(); - }, [id]) + }, [id]), ); const onLoadData = async () => { @@ -94,6 +98,7 @@ export default function AdminDonationDisbursementOfFunds() { const newData = { ...value, + authorId: user?.id, imageId: imageId, };