const ClaimCard = ({
claim,
onViewDetails,
onVerify,
onReopen,
onCancelApproval,
onUserRespond,
isOwnerView = false,
currentUserId,
}) => {
const getStatusClass = (status) => {
switch (status) {
case "approved":
case "verified":
return "bg-green-600 text-white border-green-500";
case "rejected":
return "bg-red-600 text-white border-red-500";
case "waiting_owner":
return "bg-yellow-600 text-white border-yellow-500";
default:
return "bg-slate-700 text-slate-300 border-slate-600";
}
};
const getStatusText = (status) => {
if (status === "waiting_owner") {
// Jika yang login adalah pemilik barang yang hilang
if (
claim.lost_item_user_id &&
currentUserId === claim.lost_item_user_id
) {
return "🔔 MENUNGGU ANDA";
}
// Jika yang login adalah penemu yang mengajukan klaim
if (claim.user_id && currentUserId === claim.user_id) {
return "⏳ MENUNGGU OWNER"; // Updated: Sesuai permintaan
}
return onUserRespond ? "🔔 MENUNGGU PEMILIK" : "⏳ MENUNGGU OWNER";
}
return status.toUpperCase();
};
const ActorBadge = ({ label, name, icon, color }) => (
{claim.item_name}
Pengklaim:{" "}
{claim.user_name} •{" "}
{claim.contact}
{getStatusText(claim.status)}
{claim.match_percentage && (
= 70
? "text-green-400"
: "text-yellow-400"
}`}
>
Match: {claim.match_percentage}%
)}
Ciri Rahasia (Dari Penemu)
"{claim.item_secret_details || "Tidak ada data"}"
Deskripsi Pengklaim
"{claim.description}"
{claim.status === "waiting_owner" &&
claim.lost_item_user_id &&
currentUserId === claim.lost_item_user_id && (
🔔 Seseorang menemukan barang ini dan mencocokkannya dengan Anda.
Apakah benar ini barang Anda?
)}
{claim.status === "waiting_owner" &&
claim.user_id &&
currentUserId === claim.user_id && (
⏳ Menunggu keputusan dari pemilik barang
Pemilik sedang memverifikasi apakah ini barang mereka
)}
Ditemukan: {Helpers.formatDate(claim.created_at)}
{claim.verifier_name && (
{Helpers.formatDateTime(claim.verified_at)}
)}
{claim.case_closed_by_name && (
BA: {claim.berita_acara_no}
{Helpers.formatDateTime(claim.case_closed_at)}
)}
{onViewDetails && (
)}
{claim.status === "waiting_owner" &&
claim.lost_item_user_id &&
currentUserId === claim.lost_item_user_id &&
onUserRespond && (
)}
{claim.status === "pending" && onVerify && (
)}
{claim.status === "approved" && !claim.berita_acara_no && (
<>
{onCancelApproval && (
)}
{onVerify && (
)}
>
)}
{claim.status === "approved" && claim.berita_acara_no && onReopen && (
)}
);
};