fix: reset stale price analysis selection

This commit is contained in:
2026-09-06 16:34:58 +03:00
parent f647e037c7
commit 42088cf5f0
2 changed files with 10 additions and 1 deletions
+5
View File
@@ -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. - Ü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. - 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ı ### 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. - 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.
+5 -1
View File
@@ -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 { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, Tooltip, CartesianGrid, Cell } from 'recharts';
import { TrendingUp, Download, Sparkles, Inbox } from 'lucide-react'; import { TrendingUp, Download, Sparkles, Inbox } from 'lucide-react';
import { useApp } from '../../context/AppContext'; import { useApp } from '../../context/AppContext';
@@ -10,6 +10,10 @@ export const PriceAnalysis = () => {
const { items, itemCount, uniqueItems } = useMemo(() => itemStats(tenders), [tenders]); const { items, itemCount, uniqueItems } = useMemo(() => itemStats(tenders), [tenders]);
const [selectedKey, setSelectedKey] = useState(null); const [selectedKey, setSelectedKey] = useState(null);
useEffect(() => {
if (selectedKey && !items.some((item) => `${item.ad}||${item.birim}` === selectedKey)) setSelectedKey(null);
}, [items, selectedKey]);
const selected = useMemo(() => { const selected = useMemo(() => {
if (!items.length) return null; if (!items.length) return null;
const found = items.find((i) => `${i.ad}||${i.birim}` === selectedKey); const found = items.find((i) => `${i.ad}||${i.birim}` === selectedKey);