From 2a9281c9a5a555b735fffcaaf281c4a8d21618b3 Mon Sep 17 00:00:00 2001
From: ht
Date: Sun, 6 Sep 2026 13:38:08 +0300
Subject: [PATCH] Wait for saved filter persistence before reporting success
---
docs/quality/qa-saved-filter-lifecycle.json | 16 +++++++++
docs/quality/uygulama-durumu.md | 6 ++++
src/components/LeftSidebar.jsx | 5 +--
src/components/SmartFilterBuilder.jsx | 38 +++++++++++++--------
src/context/AppContext.jsx | 27 +++++++--------
5 files changed, 61 insertions(+), 31 deletions(-)
create mode 100644 docs/quality/qa-saved-filter-lifecycle.json
diff --git a/docs/quality/qa-saved-filter-lifecycle.json b/docs/quality/qa-saved-filter-lifecycle.json
new file mode 100644
index 0000000..0a9d4db
--- /dev/null
+++ b/docs/quality/qa-saved-filter-lifecycle.json
@@ -0,0 +1,16 @@
+{
+ "date": "2026-09-06",
+ "environment": "localhost:5182 synthetic local account",
+ "checks": {
+ "saveAcknowledged": true,
+ "reloadPreserved": true,
+ "deleted": true,
+ "deletePersisted": true
+ },
+ "limits": [
+ "Save, reload, delete and reload tested",
+ "No save failure injection or multiple-device edit test",
+ "Saved-filter application to search criteria remains to be implemented",
+ "No notification subscription created"
+ ]
+}
diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md
index 58b420c..506f4dd 100644
--- a/docs/quality/uygulama-durumu.md
+++ b/docs/quality/uygulama-durumu.md
@@ -911,3 +911,9 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö
- İlan metnindeki ilk 3000 karakter sınırı kaldırıldı. Daha sonraki ürün ifadeleri de ilan metni nedeniyle eşleşebilir.
- 206 otomatik test ve derleme geçti. Portföy-only profil, açıklama kaynağı, ilgisiz akaryakıt örneğinin sıfır kalması, ÜTS/kapasitenin puan terimi olmaması, uzun metinde geç eşleşme, çift puan engeli ve portföy kaldırılınca eski puanın temizlenmesi doğrulandı.
- Bu testler eşleşme bağlantısını kanıtlar; yüksek skor teknik yeterlilik veya gerçek teklif uygunluğu değildir. Büyük havuz performansı ve gerçek portföy/ilan örneklerinde eşleşme kalitesi ayrıca kabul edilmelidir.
+
+### Kayıtlı filtrelerde gerçek kayıt sonucu — 6 Eylül 2026
+- Filtre oluşturma/silme daha önce yerel listeyi hemen değiştirip arka plandaki yazmayı beklemiyordu. saved_filters autosave kaldırıldı; ortak kayıt işlemi sunucu yanıtından sonra listeyi günceller. Kilit, hesap/oturum kontrolü, kayıt durumu ve hata gösterimi eklendi. Başarısız kayıtta isim temizlenmez; silme başarısızsa mevcut liste korunur.
+- Bildirim aboneliği oluşturmayan işlemdeki anında haber/bot çalıştırma iddiaları kaldırıldı. E-posta aboneliğinin ayrı kurulduğu açıklanır. Boş isim için alert yerine native required kullanılır; form alanları ve silme düğmeleri etiketlendi.
+- 206 test ve derleme geçti. Yerel tarayıcıda kaydetme onayı, yenilemede kayıt, silme ve yenilemede silinmiş kalma olmak üzere 4 kontrol geçti (qa-saved-filter-lifecycle.json). Bu tur kayıt hatası enjeksiyonu yapılmadı; çok cihazlı eşzamanlı düzenleme kabulü açık.
+- Ayrı eksik: kayıtlı filtre kartını arama ölçütlerine uygulama akışı mevcut değildi ve bu tur eklenmedi; bölge/şehir/sektör/usul ölçütleriyle uygulama sonraki iş olarak açık. Filtre yönetimi henüz tam uçtan uca kabul edilmiş sayılmaz.
diff --git a/src/components/LeftSidebar.jsx b/src/components/LeftSidebar.jsx
index b25ef13..2734e82 100644
--- a/src/components/LeftSidebar.jsx
+++ b/src/components/LeftSidebar.jsx
@@ -14,6 +14,7 @@ export const LeftSidebar = ({onOpenProductSearch} = {}) => {
setActiveTab,
savedFilters,
deleteSavedFilter,
+ savingCount,
selectedAlimTuru,
setSelectedAlimTuru,
selectedSektorler,
@@ -138,7 +139,7 @@ export const LeftSidebar = ({onOpenProductSearch} = {}) => {
Kayıtlı Filtrelerim
- {savedFilters.length} Bot
+ {savedFilters.length} filtre
@@ -161,7 +162,7 @@ export const LeftSidebar = ({onOpenProductSearch} = {}) => {