mirror of
https://github.com/nethunterzist/trendyol-analiz
synced 2026-07-01 09:27: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
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
@@ -426,27 +429,28 @@ function ReportGeneration() {
|
||||
onClick={() => {
|
||||
if (generating) return
|
||||
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) {
|
||||
const filterIds = new Set(filteredSubCategories.map(c => c.id))
|
||||
setSelectedSubCategories(prev => prev.filter(c => !filterIds.has(c.id)))
|
||||
setSelectedSubCategories([])
|
||||
} else {
|
||||
const newOnes = filteredSubCategories.filter(c => !allIds.has(c.id))
|
||||
const newOnes = subCategories.filter(c => !allIds.has(c.id))
|
||||
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' : ''}`}
|
||||
>
|
||||
<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'
|
||||
: '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} />
|
||||
)}
|
||||
</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>
|
||||
|
||||
{filteredSubCategories.length > 0 ? (
|
||||
|
||||
Reference in New Issue
Block a user