/* eslint-disable react-hooks/exhaustive-deps */ import { AlertDefaultSystem, BadgeCustom, BaseBox, DummyLandscapeImage, Grid, Spacing, StackCustom, TextCustom, ViewWrapper, } from "@/components"; import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; import AdminButtonReject from "@/components/_ShareComponent/Admin/ButtonReject"; import AdminButtonReview from "@/components/_ShareComponent/Admin/ButtonReview"; import ReportBox from "@/components/Box/ReportBox"; import { MainColor } from "@/constants/color-palet"; import funUpdateStatusJob from "@/screens/Admin/Job/funUpdateStatus"; import { apiAdminJobGetById } from "@/service/api-admin/api-admin-job"; import { router, useFocusEffect, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import { useCallback, useState } from "react"; import Toast from "react-native-toast-message"; export default function AdminJobDetailStatus() { const { id, status } = useLocalSearchParams(); const [data, setData] = useState(null); useFocusEffect( useCallback(() => { onLoadData(); }, [id]) ); const onLoadData = async () => { try { const response = await apiAdminJobGetById({ id: id as string, }); if (response.success) { setData(response.data); } } catch (error) { console.log("[ERROR]", error); } }; const colorBadge = () => { if (status === "publish") { return MainColor.green; } else if (status === "review") { return MainColor.orange; } else if (status === "reject") { return MainColor.red; } }; const listData = [ { label: "Username", value: data?.Author?.username || "-", }, { label: "Judul", value: data?.title || "-", }, { label: "Status", value: ( {_.startCase(status as string)} ), }, { label: "Konten", value: data?.content || "-", }, { label: "Deskripsi", value: data?.deskripsi || "-", }, ]; const handleUpdate = async ({ changeStatus, }: { changeStatus: "publish" | "review" | "reject"; }) => { try { const response = await funUpdateStatusJob({ id: id as string, changeStatus, }); if (!response.success) { Toast.show({ type: "error", text1: "Gagal mempublikasikan data", }); } Toast.show({ type: "success", text1: "Berhasil mempublikasikan data", }); router.back(); } catch (error) { console.log("[ERROR]", error); } }; return ( <> } > {listData?.map((item, index) => ( {item.label} {item.value} ))} {data && data?.imageId && ( Poster )} {data && data?.catatan && (status === "reject" || status === "review") && ( )} {status === "review" && ( { AlertDefaultSystem({ title: "Publish", message: "Apakah anda yakin ingin mempublikasikan data ini?", textLeft: "Batal", textRight: "Ya", onPressRight: () => { handleUpdate({ changeStatus: "publish" }); }, }); }} onReject={() => { router.push(`/admin/job/${id}/${status}/reject-input`); }} /> )} {status === "reject" && ( { router.push(`/admin/job/${id}/${status}/reject-input`); }} /> )} ); }