harden analytics target form controls
This commit is contained in:
@@ -2176,3 +2176,9 @@ Doğrulama: browser QA başarılı; 293 otomatik test ve üretim derlemesi başa
|
||||
Son giriş zaman damgası, oturum ziyaret damgası ve belge son kullanma uyarısı anahtarları ortak `hesapAnahtari` yardımcısını kullanıyor. E-posta boşlukları/büyük harfleri normalize ediliyor ve özel karakterler kodlanıyor; hesap kapsamlı istemci kayıtları artık tutarlı anahtar üretir.
|
||||
|
||||
Doğrulama: 293 otomatik test ve üretim derlemesi başarılı. Gerçek iki hesaplı tarayıcı kabulü açık.
|
||||
|
||||
### 2026-09-06 · Analitik hedef formu güvenli gönderim ve sınırları
|
||||
|
||||
Analitik ciro hedefi düzenleme düğmeleri açık `type="button"` kullanıyor; hedef alanı negatif değerleri kabul etmiyor ve ondalık adımı tanımlı. Panel bir form içine alınsa bile hedef düzenleme işlemi istemeden form göndermez.
|
||||
|
||||
Doğrulama: 293 otomatik test ve üretim derlemesi başarılı. Gerçek tarayıcıda form kapsayıcısı ve mobil klavye kabulü ayrıca yapılmalı.
|
||||
|
||||
@@ -92,7 +92,7 @@ export const AnalyticsDashboard = () => {
|
||||
<span className="text-blue-200 uppercase tracking-wider flex items-center gap-1">
|
||||
<Target className="w-3.5 h-3.5 text-amber-300" /> Ciro Hedefi
|
||||
</span>
|
||||
<button onClick={() => setEditing((e) => !e)} className="text-blue-200 hover:text-white" title="Hedefi düzenle">
|
||||
<button type="button" onClick={() => setEditing((e) => !e)} className="text-blue-200 hover:text-white" title="Hedefi düzenle">
|
||||
{hedef > 0 ? <span className="text-amber-300 font-black">%{hedefYuzde}</span> : <Pencil className="w-3.5 h-3.5" />}
|
||||
</button>
|
||||
</div>
|
||||
@@ -101,11 +101,13 @@ export const AnalyticsDashboard = () => {
|
||||
<input
|
||||
type="number"
|
||||
value={hedef || ''}
|
||||
onChange={(e) => setHedef(Number(e.target.value) || 0)}
|
||||
min="0"
|
||||
step="0.01"
|
||||
onChange={(e) => setHedef(Math.max(0, Number(e.target.value) || 0))}
|
||||
placeholder="Hedef bedel (₺)"
|
||||
className="w-full bg-blue-950/60 border border-blue-700 rounded-lg px-2 py-1.5 text-xs text-white placeholder:text-blue-300"
|
||||
/>
|
||||
<button onClick={() => setEditing(false)} className="bg-amber-400 text-blue-950 font-black text-xs px-2.5 py-1.5 rounded-lg">Kaydet</button>
|
||||
<button type="button" onClick={() => setEditing(false)} className="bg-amber-400 text-blue-950 font-black text-xs px-2.5 py-1.5 rounded-lg">Kaydet</button>
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
|
||||
Reference in New Issue
Block a user