fix: show cents in price analysis display
This commit is contained in:
@@ -2,9 +2,11 @@ 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';
|
||||
import { itemStats, formatTL } from '../../services/analytics';
|
||||
import { itemStats } from '../../services/analytics';
|
||||
import confetti from 'canvas-confetti';
|
||||
|
||||
const formatPrice = (n) => n == null || !Number.isFinite(Number(n)) ? '—' : Number(n).toLocaleString('tr-TR', {minimumFractionDigits:2, maximumFractionDigits:2}) + ' ₺';
|
||||
|
||||
export const PriceAnalysis = () => {
|
||||
const { tenders } = useApp();
|
||||
const { items, itemCount, uniqueItems } = useMemo(() => itemStats(tenders), [tenders]);
|
||||
@@ -102,7 +104,7 @@ export const PriceAnalysis = () => {
|
||||
}`}
|
||||
>
|
||||
<div className="truncate">📦 {it.ad}</div>
|
||||
<div className={`text-[10px] ${selectedKey === `${it.ad}||${it.birim}` ? 'text-emerald-100' : 'text-slate-400'}`}>{it.count} kayıt · {it.birim} medyan {formatTL(it.median)}</div>
|
||||
<div className={`text-[10px] ${selectedKey === `${it.ad}||${it.birim}` ? 'text-emerald-100' : 'text-slate-400'}`}>{it.count} kayıt · {it.birim} medyan {formatPrice(it.median)}</div>
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
@@ -119,7 +121,7 @@ export const PriceAnalysis = () => {
|
||||
<CartesianGrid strokeDasharray="3 3" stroke="#f1f5f9" />
|
||||
<XAxis dataKey="label" tick={{ fontSize: 12 }} />
|
||||
<YAxis tick={{ fontSize: 11 }} />
|
||||
<Tooltip formatter={(v) => formatTL(v)} />
|
||||
<Tooltip formatter={(v) => formatPrice(v)} />
|
||||
<Bar dataKey="value" radius={[6, 6, 0, 0]}>
|
||||
{chartData.map((d, i) => <Cell key={i} fill={d.renk} />)}
|
||||
</Bar>
|
||||
@@ -130,7 +132,7 @@ export const PriceAnalysis = () => {
|
||||
{chartData.map((d) => (
|
||||
<div key={d.label} className="bg-slate-50 rounded-lg p-2 border border-slate-100">
|
||||
<div className="text-[10px] text-slate-500">{d.label}</div>
|
||||
<div className="text-sm font-black" style={{ color: d.renk }}>{formatTL(d.value)}</div>
|
||||
<div className="text-sm font-black" style={{ color: d.renk }}>{formatPrice(d.value)}</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
@@ -141,7 +143,7 @@ export const PriceAnalysis = () => {
|
||||
<Sparkles className="w-5 h-5 text-amber-400" /> Karşılaştırmanın kapsamı
|
||||
</div>
|
||||
<p className="text-xs text-slate-300 leading-relaxed">
|
||||
<strong>{selected?.ad}</strong> grubunda {selected?.count} kaydın medyan kategori tutarı {formatTL(selected?.median)}.
|
||||
<strong>{selected?.ad}</strong> grubunda {selected?.count} kaydın {selected?.birim} birimindeki medyan kategori tutarı {formatPrice(selected?.median)}.
|
||||
Bunlar ürün birim fiyatı değildir. Test adedi, ambalaj birimi, cihaz ve hizmet kapsamı doğrulanmadan
|
||||
bu tutarlardan teklif fiyatı veya kazanma olasılığı çıkarılamaz.
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user