extract exchange amount validation

This commit is contained in:
2026-09-06 18:14:31 +03:00
parent 55efb8675c
commit a76a35c14d
4 changed files with 29 additions and 2 deletions
+3 -2
View File
@@ -13,6 +13,7 @@ import {
import { acknowledgeNoteDraft, editNoteDraft } from '../services/noteDrafts';
import { tenderStateKey } from '../services/tenderState';
import { createTenderICS } from '../services/tenderCalendar';
import { validateExchangeAmount, MAX_EXCHANGE_AMOUNT } from '../services/exchangeAmount';
export const TenderDetailModal = () => {
const { activeTenderDetail, setActiveTenderDetail, toggleTrackTender, userProfile, setIsAiSpecAnalyzerOpen, gorevAc, gorevKontrol, aiAnalysisResults, tenders, mutateTender, savingCount, saveError, authUser, detailLoad, retryTenderDetail } = useApp();
@@ -49,7 +50,7 @@ export const TenderDetailModal = () => {
const usdRate = fx?.rates?.USD;
const eurRate = fx?.rates?.EUR;
const fxIsStale = Boolean(fx?.refreshError);
const bidAmountValid = Number.isFinite(bidAmount) && bidAmount >= 0 && bidAmount <= 1e12;
const bidAmountValid = validateExchangeAmount(bidAmount);
if (!activeTenderDetail) return null;
// Havuzdaki güncel kayıt: takip/görev değişince düğme etiketleri de değişsin.
@@ -385,7 +386,7 @@ export const TenderDetailModal = () => {
onChange={(e) => {
const value = Number(e.target.value);
setBidAmount(value);
setBidAmountError(Number.isFinite(value) && value >= 0 && value <= 1e12 ? null : 'Tutar 0 ile 1.000.000.000.000 TL arasında olmalıdır.');
setBidAmountError(validateExchangeAmount(value) ? null : `Tutar 0 ile ${MAX_EXCHANGE_AMOUNT.toLocaleString('tr-TR')} TL arasında olmalıdır.`);
}}
className="w-full bg-white/10 border border-white/20 rounded-lg px-3 py-1.5 text-xs text-white"
/>
+9
View File
@@ -0,0 +1,9 @@
const MAX_EXCHANGE_AMOUNT = 1e12;
export function validateExchangeAmount(value) {
if (value === null || value === undefined || (typeof value === 'string' && !value.trim())) return false;
const amount = Number(value);
return Number.isFinite(amount) && amount >= 0 && amount <= MAX_EXCHANGE_AMOUNT;
}
export { MAX_EXCHANGE_AMOUNT };