Add:
- service/api-client/api-file.ts: upload & delete

Portofolio
Fix:
- user)/portofolio/[id]/create.tsx: Loading submit
- (user)/portofolio/[id]/index.tsx: Delete button recode

Profile
Fix:
- (user)/profile/[id]/update-photo && upload-backgroud: delete image yang kama

### No Issue
This commit is contained in:
2025-09-01 12:11:21 +08:00
parent 41a4a94255
commit bb95e8ccbd
12 changed files with 195 additions and 86 deletions

View File

@@ -11,6 +11,8 @@ interface Props {
dataMedsos: any;
imageUri: string | null;
subBidangSelected: any[];
isLoadingCreate: boolean;
setIsLoadingCreate: (value: boolean) => void;
}
interface ICreatePortofolio {
@@ -34,9 +36,34 @@ export default function Portofolio_ButtonCreate({
dataMedsos,
imageUri,
subBidangSelected,
isLoadingCreate,
setIsLoadingCreate,
}: Props) {
const validaasiData = () => {
if (
!data.namaBisnis ||
!data.masterBidangBisnisId ||
!data.alamatKantor ||
!data.tlpn ||
!data.deskripsi
) {
return false;
}
return true;
};
const handleCreatePortofolio = async () => {
if (!validaasiData()) {
Toast.show({
type: "info",
text1: "Info",
text2: "Harap lengkapi data",
});
return;
}
try {
setIsLoadingCreate(true);
let fileId = "";
if (imageUri) {
const response = await uploadImageService({
@@ -81,41 +108,19 @@ export default function Portofolio_ButtonCreate({
text1: "Error",
text2: error as string,
});
} finally {
setIsLoadingCreate(false);
}
};
// const onCreatePortofolio = async ({ fileId }: { fileId: string }) => {
// const newData: ICreatePortofolio = {
// namaBisnis: data.namaBisnis,
// masterBidangBisnisId: data.masterBidangBisnisId,
// alamatKantor: data.alamatKantor,
// tlpn: data.tlpn,
// deskripsi: data.deskripsi,
// fileId: fileId,
// facebook: dataMedsos.facebook,
// twitter: dataMedsos.twitter,
// instagram: dataMedsos.instagram,
// tiktok: dataMedsos.tiktok,
// youtube: dataMedsos.youtube,
// };
// try {
// const response = await apiPortofolioCreate({
// id: id,
// data: newData,
// });
// console.log("Response >>", JSON.stringify(response, null, 2));
// return response;
// } catch (error) {
// throw error;
// }
// // router.replace(`/maps/create`);
// };
return (
<BoxButtonOnFooter>
<ButtonCustom onPress={handleCreatePortofolio}>Selanjutnya</ButtonCustom>
<ButtonCustom
isLoading={isLoadingCreate}
onPress={handleCreatePortofolio}
>
Selanjutnya
</ButtonCustom>
</BoxButtonOnFooter>
);
}

View File

@@ -1,17 +1,53 @@
import { ButtonCustom } from "@/components";
import { AlertDefaultSystem, ButtonCustom } from "@/components";
import { MainColor } from "@/constants/color-palet";
import { Ionicons } from "@expo/vector-icons";
import { apiDeletePortofolio } from "@/service/api-client/api-portofolio";
import { router } from "expo-router";
export default function Portofolio_ButtonDelete({
setShowDeleteAlert,
id,
isLoadingDelete,
setIsLoadingDelete,
}: {
setShowDeleteAlert: (value: boolean) => void;
id: string;
isLoadingDelete: boolean;
setIsLoadingDelete: (value: boolean) => void;
}) {
const handleDelete = () => {
setShowDeleteAlert(true);
const handleDelete = async () => {
AlertDefaultSystem({
title: "Hapus Portofolio",
message: "Yakin ingin menghapus portofolio ini?",
textLeft: "Batal",
textRight: "Hapus",
onPressRight: async () => {
try {
setIsLoadingDelete(true);
const response = await apiDeletePortofolio({ id: id });
console.log("Response portofolio >>", response);
if (response.success) {
console.log("Portofolio berhasil dihapus");
router.back();
}
console.log("Gagal dihapus >>", response);
} catch (error) {
console.log("Error delete portofolio >>", error);
} finally {
setIsLoadingDelete(false);
}
},
})
};
return (
<ButtonCustom textColor={MainColor.white} iconLeft={<Ionicons name="trash-outline" size={20} color="white" />} onPress={handleDelete} backgroundColor={MainColor.red}>
<ButtonCustom
isLoading={isLoadingDelete}
textColor={MainColor.white}
iconLeft={<Ionicons name="trash-outline" size={20} color="white" />}
onPress={handleDelete}
backgroundColor={MainColor.red}
>
Hapus
</ButtonCustom>
);