import React, { useState } from 'react'; import { useApp } from '../context/AppContext'; import { INSTITUTION_TYPES_LIST, CITIES_LIST } from '../data/constants'; import { Bot, ArrowLeft, CheckCircle2, HelpCircle, Building2, MapPin, Tag } from 'lucide-react'; export const SmartFilterBuilder = () => { const { savedFilters, applySavedFilter, addSavedFilter, deleteSavedFilter, setActiveTab, sektorListesi, savingCount, saveError, searchQuery, detailedQueries, selectedCity: activeCity, selectedRegion: activeRegion, selectedAlimTuru: activeProcedure, selectedKurumTipi: activeInstitution, selectedSektorler: activeSectors } = useApp(); const [filterName, setFilterName] = useState(''); const [keyword,setKeyword] = useState(searchQuery || ''); const [institutionName,setInstitutionName] = useState(detailedQueries?.institution || ''); const [registration,setRegistration] = useState(detailedQueries?.registration || ''); const [selectedKurumTip, setSelectedKurumTip] = useState(activeInstitution || ''); const [selectedUsul, setSelectedUsul] = useState(activeProcedure || ''); const [selectedCity, setSelectedCity] = useState(activeCity || ''); const [selectedRegion, setSelectedRegion] = useState(activeRegion || ''); const [selectedSektor, setSelectedSektor] = useState(activeSectors?.[0] || ''); const [successMessage, setSuccessMessage] = useState(''); const regions = [ 'AKDENİZ BÖLGESİ', 'DOĞU ANADOLU BÖLGESİ', 'EGE BÖLGESİ', 'GÜNEYDOĞU ANADOLU BÖLGESİ', 'İÇ ANADOLU BÖLGESİ', 'KARADENİZ BÖLGESİ', 'MARMARA BÖLGESİ' ]; const usuller = [ 'Açık İhale', 'Dış Alım', 'Doğrudan Temin', 'İstisna', 'Pazarlık Usulü', 'Yaklaşık Maliyet' ]; const handleCreateFilter = async (e) => { e.preventDefault(); if (!filterName.trim()) { setSuccessMessage(''); return; } setSuccessMessage(''); const saved=await addSavedFilter({ name: filterName.trim(), anahtarKelime: keyword.trim(), kurumAdi: institutionName.trim(), ikn: registration.trim(), kurumTipi: selectedKurumTip, usul: selectedUsul, sehir: selectedCity, bolge: selectedRegion, sektor: selectedSektor }); if(!saved)return; setSuccessMessage('Filtre sunucuya kaydedildi. Bu kayıt bildirim aboneliği oluşturmaz.'); setFilterName(''); }; return (
{/* Top Banner */}

Kayıtlı Filtreler

Arama ölçütlerinizi kaydedin; soldaki filtre adına tıklayarak ihale listesine uygulayın. E-posta bildirimleri Yönetim → Mobil PWA bölümünden ayrıca kurulur.

{savingCount > 0 &&

Filtre işlemi kaydediliyor…

} {saveError &&

{saveError}

} {successMessage && (
{successMessage}
)} {/* Main Grid */}
{/* Left Column: Ekip Filtre Listesi */}

Ekip Filtre Listesi

{savedFilters.length}
{savedFilters.map(f => (

👤 {f.user} {f.sehir && `• 📍 ${f.sehir}`}

))}
{/* Right 3 Columns: Filter Form */}
0} className="space-y-6"> {/* Filter Name Card */}
setFilterName(e.target.value)} placeholder="Örn: Ege Bölgesi Cihaz İhaleleri" className="w-full bg-slate-50 border border-slate-300 rounded-lg px-4 py-2.5 text-sm text-slate-800 placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-blue-500" />

Bu ad kayıtlı filtre listenizde görünür.

Arama metinleri

Dolu alanlar birlikte uygulanır. Boş bıraktığınız alan aramayı sınırlamaz.

{[ ['Anahtar kelime',keyword,setKeyword], ['Kurum adı',institutionName,setInstitutionName], ['İKN / DT no',registration,setRegistration], ].map(([label,value,setValue])=>)}
{/* Middle Grid */}
{/* Kurum Tipi & İhale Usulü */}

Kurum Tipi & İhale Usulü

{['Sağlık', 'Belediye', 'Üniversite', 'Kamu', 'Temizle'].map(badge => ( ))}
{usuller.map(usul => ( ))}
{/* Konum Seçimi */}

Konum Seçimi

{/* Action Buttons */}
); };