diff --git a/components/dialog/galery-detail-dialog.tsx b/components/dialog/galery-detail-dialog.tsx index 4d94e4f..6069cc5 100644 --- a/components/dialog/galery-detail-dialog.tsx +++ b/components/dialog/galery-detail-dialog.tsx @@ -12,6 +12,7 @@ import { Check, CheckCheck, CheckCircle, Clock, X } from "lucide-react"; import { useEffect, useState } from "react"; import { approveGalery, + commentGalery, getGaleryFileData, rejectGalery, } from "@/service/galery"; @@ -29,6 +30,7 @@ export function DialogDetailGaleri({ open, onClose, data }: any) { const [userRoleId, setUserRoleId] = useState(null); const [openViewDialog, setOpenViewDialog] = useState(false); const router = useRouter(); + const MySwal = withReactContent(Swal); // 🔹 Ambil userlevelId dari cookies useEffect(() => { @@ -90,6 +92,39 @@ export function DialogDetailGaleri({ open, onClose, data }: any) { fetchImages(); // refresh table }; + const handleCommentGalery = async (id: number) => { + const { value: message } = await MySwal.fire({ + title: "Komen Galeri", + input: "textarea", + inputLabel: "Komentar (opsional)", + inputPlaceholder: "Masukkan komentar...", + inputAttributes: { + "aria-label": "Masukkan komentar", + }, + showCancelButton: true, + confirmButtonText: "Komentar", + cancelButtonText: "Batal", + confirmButtonColor: "#dc2626", + }); + + if (message === undefined) { + return; // User cancelled + } + + loading(); + const res = await commentGalery(id, message || undefined); + + if (res?.error) { + error(res.message || "Gagal komentar promotion"); + close(); + return; + } + + close(); + success("Galeri berhasil dikomentar"); + // fetchData(); // refresh table + }; + const handleRejectGalery = async (id: number) => { const MySwal = withReactContent(Swal); const { value: message } = await MySwal.fire({ @@ -292,7 +327,7 @@ export function DialogDetailGaleri({ open, onClose, data }: any) { className="bg-blue-200 hover:bg-blue-400" onClick={(e) => { e.stopPropagation(); - setOpenCommentModal(true); + handleCommentGalery(data.id); }} > Beri Tanggapan diff --git a/components/dialog/promo-dialog.tsx b/components/dialog/promo-dialog.tsx index 58027e2..20f8c23 100644 --- a/components/dialog/promo-dialog.tsx +++ b/components/dialog/promo-dialog.tsx @@ -17,6 +17,7 @@ import { } from "lucide-react"; import { approvePromotion, + commentPromotion, getPromotionById, rejectPromotion, } from "@/service/promotion"; @@ -71,6 +72,39 @@ export default function PromoDetailDialog({ setOpenApproverHistory(true); }; + const handleCommentPromotion = async (id: number) => { + const { value: message } = await MySwal.fire({ + title: "Komen Promotion", + input: "textarea", + inputLabel: "Komentar (opsional)", + inputPlaceholder: "Masukkan komentar...", + inputAttributes: { + "aria-label": "Masukkan komentar", + }, + showCancelButton: true, + confirmButtonText: "Komentar", + cancelButtonText: "Batal", + confirmButtonColor: "#dc2626", + }); + + if (message === undefined) { + return; // User cancelled + } + + loading(); + const res = await commentPromotion(id, message || undefined); + + if (res?.error) { + error(res.message || "Gagal komentar promotion"); + close(); + return; + } + + close(); + success("Promotion berhasil dikomentar"); + // fetchData(); // refresh table + }; + const handleRejectPromotion = async (id: number) => { const MySwal = withReactContent(Swal); const { value: message } = await MySwal.fire({ @@ -338,7 +372,7 @@ export default function PromoDetailDialog({ className="bg-blue-200 hover:bg-blue-400" onClick={(e) => { e.stopPropagation(); - setOpenCommentModal(true); + handleCommentPromotion(promo.id); }} > Beri Tanggapan diff --git a/components/form/agent/detail-agent-form.tsx b/components/form/agent/detail-agent-form.tsx index 319d3e6..5e99e32 100644 --- a/components/form/agent/detail-agent-form.tsx +++ b/components/form/agent/detail-agent-form.tsx @@ -33,6 +33,7 @@ import Cookies from "js-cookie"; import { getProductDataById } from "@/service/product"; import { approveAgent, + commentAgent, getAgentById, rejectAgent, updateAgent, @@ -141,6 +142,39 @@ export default function DetailAgentForm(props: { isDetail: boolean }) { setOpenApproverHistory(true); }; + const handleCommentAgent = async (id: number) => { + const { value: message } = await MySwal.fire({ + title: "Komen Agent", + input: "textarea", + inputLabel: "Komentar (opsional)", + inputPlaceholder: "Masukkan komentar...", + inputAttributes: { + "aria-label": "Masukkan komentar", + }, + showCancelButton: true, + confirmButtonText: "Komentar", + cancelButtonText: "Batal", + confirmButtonColor: "#dc2626", + }); + + if (message === undefined) { + return; // User cancelled + } + + loading(); + const res = await commentAgent(id, message || undefined); + + if (res?.error) { + error(res.message || "Gagal komentar agent"); + close(); + return; + } + + close(); + success("Agent berhasil dikomentar"); + fetchData(); // refresh table + }; + const handleRejectAgent = async (id: number) => { const MySwal = withReactContent(Swal); const { value: message } = await MySwal.fire({ @@ -326,7 +360,7 @@ export default function DetailAgentForm(props: { isDetail: boolean }) { diff --git a/components/form/login.tsx b/components/form/login.tsx index 3790576..e32da42 100644 --- a/components/form/login.tsx +++ b/components/form/login.tsx @@ -188,7 +188,14 @@ export default function Login() { return (
{/* Left Side - Logo Section */} -
+
@@ -483,7 +490,7 @@ export default function Login() {
- {userLevelId !== "2" && detailData && ( + {userRoleId !== "2" && detailData && (
{detailData.status_id === 1 ? ( <> @@ -617,7 +655,7 @@ export default function DetailProductForm(props: { isDetail: boolean }) { Reject - {userLevelId === "1" && ( + {userRoleId === "1" && (