From a09eb62f5a65f584c32ddb5c46018dc404d3e1f3 Mon Sep 17 00:00:00 2001 From: towfiqi Date: Thu, 7 Nov 2024 21:04:57 +0600 Subject: [PATCH] feat: auto filter keywords if they already exist instead of throwing error. closes #244 --- components/keywords/AddKeywords.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/components/keywords/AddKeywords.tsx b/components/keywords/AddKeywords.tsx index 567a601..77e8e74 100644 --- a/components/keywords/AddKeywords.tsx +++ b/components/keywords/AddKeywords.tsx @@ -42,12 +42,15 @@ const AddKeywords = ({ closeModal, domain, keywords, scraperName = '', allowsCit const keywordExist = keywordsArray.filter((k) => currentKeywords.includes( `${k}-${newKeywordsData.device}-${newKeywordsData.country}${newKeywordsData.city ? `-${newKeywordsData.city}` : ''}`, )); - if (keywordExist.length > 0) { + if ((keywordsArray.length === 1 || currentKeywords.length === keywordExist.length) && keywordExist.length > 0) { setError(`Keywords ${keywordExist.join(',')} already Exist`); setTimeout(() => { setError(''); }, 3000); } else { + const filteredKeywords = keywordsArray.filter((k) => !currentKeywords.includes( + `${k}-${newKeywordsData.device}-${newKeywordsData.country}${newKeywordsData.city ? `-${newKeywordsData.city}` : ''}`, + )); const { device, country, domain: kDomain, tags, city } = newKeywordsData; - const newKeywordsArray = keywordsArray.map((nItem) => ({ keyword: nItem, device, country, domain: kDomain, tags, city })); + const newKeywordsArray = filteredKeywords.map((nItem) => ({ keyword: nItem, device, country, domain: kDomain, tags, city })); addMutate(newKeywordsArray); } } else {