update tender form

This commit is contained in:
Aya
2026-07-23 10:36:08 +03:00
parent 96386887fb
commit 12578223fd
5 changed files with 85 additions and 54 deletions

View File

@@ -182,11 +182,8 @@ function TendersContent() {
const errors: Record<string, string> = {}
if (!formData.tenderNumber?.trim()) errors.tenderNumber = t('common.required')
if (!formData.issuingBodyName?.trim()) errors.issuingBodyName = t('common.required')
if (!formData.title?.trim()) errors.title = t('common.required')
if (!formData.announcementDate) errors.announcementDate = t('common.required')
if (!formData.closingDate) errors.closingDate = t('common.required')
if (Number(formData.initialBondValue || 0) < 0) {
errors.initialBondValue = t('common.required')
@@ -231,11 +228,8 @@ function TendersContent() {
const errors: Record<string, string> = {}
if (!formData.tenderNumber?.trim()) errors.tenderNumber = t('common.required')
if (!formData.issuingBodyName?.trim()) errors.issuingBodyName = t('common.required')
if (!formData.title?.trim()) errors.title = t('common.required')
if (!formData.announcementDate) errors.announcementDate = t('common.required')
if (!formData.closingDate) errors.closingDate = t('common.required')
if (Number(formData.initialBondValue || 0) < 0) {
errors.initialBondValue = t('common.required')
@@ -289,11 +283,11 @@ function TendersContent() {
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">
{t('tenders.tenderNumber')} *
{t('tenders.tenderNumber')}
</label>
<input
type="text"
value={formData.tenderNumber}
value={formData.tenderNumber ?? ''}
onChange={(e) => setFormData({ ...formData, tenderNumber: e.target.value })}
className="w-full px-3 py-2 border rounded-lg"
/>
@@ -354,9 +348,12 @@ function TendersContent() {
<input
type="number"
min={0}
value={formData.termsValue || ''}
value={formData.termsValue ?? ''}
onChange={(e) =>
setFormData({ ...formData, termsValue: Number(e.target.value) || 0 })
setFormData({
...formData,
termsValue: e.target.value === '' ? 0 : Number(e.target.value),
})
}
className="w-full px-3 py-2 border rounded-lg"
/>
@@ -369,14 +366,11 @@ function TendersContent() {
<input
type="number"
min={0}
value={formData.initialBondValue || ''}
onChange={(e) =>
setFormData({
...formData,
initialBondValue: Number(e.target.value) || 0,
bondValue: Number(e.target.value) || 0,
})
}
value={formData.initialBondValue ?? ''}
onChange={(e) => {
const v = e.target.value === '' ? 0 : Number(e.target.value)
setFormData({ ...formData, initialBondValue: v, bondValue: v })
}}
className="w-full px-3 py-2 border rounded-lg"
/>
{formErrors.initialBondValue && (
@@ -391,9 +385,12 @@ function TendersContent() {
<input
type="number"
min={0}
value={formData.finalBondValue || ''}
value={formData.finalBondValue ?? ''}
onChange={(e) =>
setFormData({ ...formData, finalBondValue: Number(e.target.value) || 0 })
setFormData({
...formData,
finalBondValue: e.target.value === '' ? 0 : Number(e.target.value),
})
}
className="w-full px-3 py-2 border rounded-lg"
/>
@@ -418,11 +415,11 @@ function TendersContent() {
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">
{t('tenders.announcementDate')} *
{t('tenders.announcementDate')}
</label>
<input
type="date"
value={formData.announcementDate}
value={formData.announcementDate ?? ''}
onChange={(e) => setFormData({ ...formData, announcementDate: e.target.value })}
className="w-full px-3 py-2 border rounded-lg"
/>
@@ -433,11 +430,11 @@ function TendersContent() {
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">
{t('tenders.closingDate')} *
{t('tenders.closingDate')}
</label>
<input
type="date"
value={formData.closingDate}
value={formData.closingDate ?? ''}
onChange={(e) => setFormData({ ...formData, closingDate: e.target.value })}
className="w-full px-3 py-2 border rounded-lg"
/>

View File

@@ -2,7 +2,7 @@ import { api } from '../api'
export interface Tender {
id: string
tenderNumber: string
tenderNumber?: string | null
issueNumber?: string | null
issuingBodyName: string
title: string
@@ -18,8 +18,8 @@ export interface Tender {
siteVisitLocation?: string | null
termsPickupProvince?: string | null
announcementDate: string
closingDate: string
announcementDate?: string | null
closingDate?: string | null
announcementLink?: string
source: string
sourceOther?: string
@@ -57,7 +57,7 @@ export interface TenderDirective {
}
export interface CreateTenderData {
tenderNumber: string
tenderNumber?: string | null
issueNumber?: string
issuingBodyName: string
title: string
@@ -73,8 +73,8 @@ export interface CreateTenderData {
siteVisitLocation?: string
termsPickupProvince?: string
announcementDate: string
closingDate: string
announcementDate?: string | null
closingDate?: string | null
announcementLink?: string
source: string
sourceOther?: string