mirror of
https://github.com/nethunterzist/trendyol-analiz
synced 2026-07-03 10:17:03 +00:00
fix: "Tümünü Seç" tüm alt kategorileri seçmeli, sadece filtrelenenleri değil
Ne yaptık: - "Tümünü Seç" artık arama filtresi aktifken bile tüm alt kategorileri seçiyor - Tüm alt kategoriler seçiliyse subcategory_ids gönderilmiyor (backend zaten tümünü tarıyor) - URL uzunluk limitine takılma riski ortadan kalktı - Label'a seçili/toplam sayacı eklendi (ör: 45/105) Neden yaptık: - Kozmetik gibi 105 alt kategorili ana kategoride "Tümünü Seç" sadece filtrelenmiş kategorileri seçiyordu, bu yüzden raporda 1 kategori (~100 ürün) taranıyordu. Şimdi 105 kategori (~10.500 ürün) taranacak. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -148,7 +148,10 @@ function ReportGeneration() {
|
|||||||
category_id: selectedCategory.id
|
category_id: selectedCategory.id
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedSubCategories.length > 0) {
|
// Tüm alt kategoriler seçiliyse subcategory_ids gönderme — backend zaten tümünü tarar
|
||||||
|
const allSelected = selectedSubCategories.length > 0 &&
|
||||||
|
selectedSubCategories.length === subCategories.length
|
||||||
|
if (selectedSubCategories.length > 0 && !allSelected) {
|
||||||
requestBody.subcategory_ids = selectedSubCategories.map(cat => cat.id)
|
requestBody.subcategory_ids = selectedSubCategories.map(cat => cat.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,27 +429,28 @@ function ReportGeneration() {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (generating) return
|
if (generating) return
|
||||||
const allIds = new Set(selectedSubCategories.map(c => c.id))
|
const allIds = new Set(selectedSubCategories.map(c => c.id))
|
||||||
const allSelected = filteredSubCategories.every(c => allIds.has(c.id))
|
const allSelected = subCategories.every(c => allIds.has(c.id))
|
||||||
if (allSelected) {
|
if (allSelected) {
|
||||||
const filterIds = new Set(filteredSubCategories.map(c => c.id))
|
setSelectedSubCategories([])
|
||||||
setSelectedSubCategories(prev => prev.filter(c => !filterIds.has(c.id)))
|
|
||||||
} else {
|
} else {
|
||||||
const newOnes = filteredSubCategories.filter(c => !allIds.has(c.id))
|
const newOnes = subCategories.filter(c => !allIds.has(c.id))
|
||||||
setSelectedSubCategories(prev => [...prev, ...newOnes])
|
setSelectedSubCategories(prev => [...prev, ...newOnes])
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
className={`flex items-center px-5 py-2.5 border-b border-slate-100 cursor-pointer hover:bg-slate-50 transition-colors ${generating ? 'opacity-50 cursor-not-allowed' : ''}`}
|
className={`flex items-center px-5 py-2.5 border-b border-slate-100 cursor-pointer hover:bg-slate-50 transition-colors ${generating ? 'opacity-50 cursor-not-allowed' : ''}`}
|
||||||
>
|
>
|
||||||
<div className={`w-[18px] h-[18px] rounded border-2 flex items-center justify-center mr-3 shrink-0 transition-colors ${
|
<div className={`w-[18px] h-[18px] rounded border-2 flex items-center justify-center mr-3 shrink-0 transition-colors ${
|
||||||
filteredSubCategories.length > 0 && filteredSubCategories.every(c => selectedSubCategories.some(s => s.id === c.id))
|
subCategories.length > 0 && subCategories.every(c => selectedSubCategories.some(s => s.id === c.id))
|
||||||
? 'bg-orange-500 border-orange-500'
|
? 'bg-orange-500 border-orange-500'
|
||||||
: 'border-slate-300'
|
: 'border-slate-300'
|
||||||
}`}>
|
}`}>
|
||||||
{filteredSubCategories.length > 0 && filteredSubCategories.every(c => selectedSubCategories.some(s => s.id === c.id)) && (
|
{subCategories.length > 0 && subCategories.every(c => selectedSubCategories.some(s => s.id === c.id)) && (
|
||||||
<Check className="w-3 h-3 text-white" strokeWidth={3} />
|
<Check className="w-3 h-3 text-white" strokeWidth={3} />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<span className="text-xs font-semibold text-slate-400 uppercase tracking-wider">Tümünü seç</span>
|
<span className="text-xs font-semibold text-slate-400 uppercase tracking-wider">
|
||||||
|
Tümünü seç ({selectedSubCategories.length}/{subCategories.length})
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{filteredSubCategories.length > 0 ? (
|
{filteredSubCategories.length > 0 ? (
|
||||||
|
|||||||
Reference in New Issue
Block a user