From fde71818e2e0fba672849c818d80925b2fdb1ea6 Mon Sep 17 00:00:00 2001 From: Rafiafrzl Date: Thu, 20 Nov 2025 15:25:07 +0700 Subject: [PATCH] fix: enhance tag duplication check and handle varied response structures in DetailTag component --- src/pages/master/tag/component/DetailTag.jsx | 30 ++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/pages/master/tag/component/DetailTag.jsx b/src/pages/master/tag/component/DetailTag.jsx index cde59b4..8b5fce7 100644 --- a/src/pages/master/tag/component/DetailTag.jsx +++ b/src/pages/master/tag/component/DetailTag.jsx @@ -84,12 +84,32 @@ const DetailTag = (props) => { const params = new URLSearchParams({ limit: 10000 }); const response = await getAllTag(params); - if (response && response.data && response.data.data) { - const existingTags = response.data.data; + // Handle different response structures + let existingTags = []; + if (response) { + if (Array.isArray(response)) { + existingTags = response; + } else if (response.data && Array.isArray(response.data)) { + existingTags = response.data; + } else if (response.data && response.data.data && Array.isArray(response.data.data)) { + existingTags = response.data.data; + } + } + if (existingTags.length > 0) { const isDuplicate = existingTags.some((tag) => { - const isSameNumber = Number(tag.tag_number) === tagNumberInt; - const isDifferentTag = formData.tag_id ? tag.tag_id !== formData.tag_id : true; + // Handle both string and number tag_number + const existingTagNumber = Number(tag.tag_number); + const currentTagNumber = Number(formData.tag_number); + + // Check if numbers are valid and equal + const isSameNumber = !isNaN(existingTagNumber) && !isNaN(currentTagNumber) && + existingTagNumber === currentTagNumber; + + // For edit mode, exclude the current tag from duplicate check + const isDifferentTag = formData.tag_id ? + String(tag.tag_id) !== String(formData.tag_id) : true; + return isSameNumber && isDifferentTag; }); @@ -97,7 +117,7 @@ const DetailTag = (props) => { NotifOk({ icon: 'warning', title: 'Peringatan', - message: `Tag Number ${tagNumberInt} sudah digunakan. Silakan gunakan nomor yang berbeda.`, + message: `Tag Number ${formData.tag_number} sudah digunakan. Silakan gunakan nomor yang berbeda.`, }); setConfirmLoading(false); return;