From 42088cf5f003311c02619ad4a42064dc38665bea Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 16:34:58 +0300 Subject: [PATCH] fix: reset stale price analysis selection --- docs/quality/uygulama-durumu.md | 5 +++++ src/components/tools/PriceAnalysis.jsx | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index 3494aea..fb83c16 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -1340,6 +1340,11 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö - Ürün + birim ayrımından sonra fiyat analizi listesindeki seçim ve React anahtarı yalnız ürün adına bağlı kalıyordu. Aynı ürünün kutu ve adet kayıtları artık ayrı seçilebiliyor; seçim anahtarı ve gösterim birimi birlikte kullanılıyor. - Liste satırlarında birim medyanı açıkça yazıyor; seçilen birim değiştiğinde grafik ve özet aynı kayda geçiyor. 283 test ve build başarılı. Gerçek pazar ekranı tarayıcı kabulü hâlâ yapılmadı; genel plan açık. +### 2026-09-06 — Fiyat analizi yenilenen veri seçimi + +- Fiyat verisi yenilendiğinde seçili ürün + birim artık listede bulunmuyorsa ekran boş bir seçim göstermiyor; seçim güvenli biçimde ilk geçerli kayda dönüyor ve grafik/özet aynı kaydı kullanıyor. +- 283 test ve build başarılı. Bu veri yenileme senaryosunun gerçek pazar ekranı kabulü henüz yapılmadı; genel plan açık. + ### 2026-09-06 — Fiyat analizi CSV kuruş koruması - Fiyat analizi CSV dışa aktarımında min/medyan/ortalama/maksimum değerleri artık yuvarlanıp kuruş kaybetmiyor; iki ondalık basamakla aynı ham istatistikleri taşıyor. diff --git a/src/components/tools/PriceAnalysis.jsx b/src/components/tools/PriceAnalysis.jsx index 223a73b..e991f39 100644 --- a/src/components/tools/PriceAnalysis.jsx +++ b/src/components/tools/PriceAnalysis.jsx @@ -1,4 +1,4 @@ -import React, { useState, useMemo } from 'react'; +import React, { useState, useMemo, useEffect } from 'react'; import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, Tooltip, CartesianGrid, Cell } from 'recharts'; import { TrendingUp, Download, Sparkles, Inbox } from 'lucide-react'; import { useApp } from '../../context/AppContext'; @@ -10,6 +10,10 @@ export const PriceAnalysis = () => { const { items, itemCount, uniqueItems } = useMemo(() => itemStats(tenders), [tenders]); const [selectedKey, setSelectedKey] = useState(null); + useEffect(() => { + if (selectedKey && !items.some((item) => `${item.ad}||${item.birim}` === selectedKey)) setSelectedKey(null); + }, [items, selectedKey]); + const selected = useMemo(() => { if (!items.length) return null; const found = items.find((i) => `${i.ad}||${i.birim}` === selectedKey);