prevent document controls from implicit submit
This commit is contained in:
@@ -304,7 +304,7 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex gap-2 flex-wrap">
|
<div className="flex gap-2 flex-wrap">
|
||||||
<button
|
<button type="button"
|
||||||
onClick={dokumaniAc}
|
onClick={dokumaniAc}
|
||||||
disabled={busy !== null}
|
disabled={busy !== null}
|
||||||
className="bg-blue-600 hover:bg-blue-500 disabled:opacity-40 text-white font-bold text-xs px-4 py-2.5 rounded-xl flex items-center gap-2"
|
className="bg-blue-600 hover:bg-blue-500 disabled:opacity-40 text-white font-bold text-xs px-4 py-2.5 rounded-xl flex items-center gap-2"
|
||||||
@@ -313,7 +313,7 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
EKAP Dokümanlarını Aç
|
EKAP Dokümanlarını Aç
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button
|
<button type="button"
|
||||||
onClick={ilaniAnalizEt}
|
onClick={ilaniAnalizEt}
|
||||||
disabled={busy !== null}
|
disabled={busy !== null}
|
||||||
className="bg-amber-400 hover:bg-amber-300 disabled:opacity-40 text-slate-950 font-black text-xs px-4 py-2.5 rounded-xl flex items-center gap-2"
|
className="bg-amber-400 hover:bg-amber-300 disabled:opacity-40 text-slate-950 font-black text-xs px-4 py-2.5 rounded-xl flex items-center gap-2"
|
||||||
@@ -377,7 +377,7 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
accept=".pdf,.docx,.xlsx,.zip,.txt"
|
accept=".pdf,.docx,.xlsx,.zip,.txt"
|
||||||
className="hidden"
|
className="hidden"
|
||||||
/>
|
/>
|
||||||
<button
|
<button type="button"
|
||||||
onClick={() => dosyaRef.current?.click()}
|
onClick={() => dosyaRef.current?.click()}
|
||||||
disabled={yukleniyor}
|
disabled={yukleniyor}
|
||||||
className="bg-slate-900 hover:bg-slate-800 disabled:opacity-40 text-white font-bold text-xs px-3.5 py-2 rounded-lg flex items-center gap-2"
|
className="bg-slate-900 hover:bg-slate-800 disabled:opacity-40 text-white font-bold text-xs px-3.5 py-2 rounded-lg flex items-center gap-2"
|
||||||
@@ -399,7 +399,7 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
{listeBekliyor && <p role="status" className="text-xs text-slate-500">Belge listesi yükleniyor…</p>}
|
{listeBekliyor && <p role="status" className="text-xs text-slate-500">Belge listesi yükleniyor…</p>}
|
||||||
{listeHata && <div role="alert" className="text-xs text-red-700">
|
{listeHata && <div role="alert" className="text-xs text-red-700">
|
||||||
Belge listesi alınamadı: {listeHata}
|
Belge listesi alınamadı: {listeHata}
|
||||||
<button onClick={belgeleriYukle} className="ml-2 underline">Listeyi yeniden yükle</button>
|
<button type="button" onClick={belgeleriYukle} className="ml-2 underline">Listeyi yeniden yükle</button>
|
||||||
</div>}
|
</div>}
|
||||||
{belgeler.length > 0 && (
|
{belgeler.length > 0 && (
|
||||||
<div className="space-y-1.5">
|
<div className="space-y-1.5">
|
||||||
@@ -413,14 +413,14 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
<span className="text-[10px] text-slate-400 whitespace-nowrap">
|
<span className="text-[10px] text-slate-400 whitespace-nowrap">
|
||||||
{(b.boyut / 1024).toLocaleString('tr-TR', { maximumFractionDigits: 0 })} KB
|
{(b.boyut / 1024).toLocaleString('tr-TR', { maximumFractionDigits: 0 })} KB
|
||||||
</span>
|
</span>
|
||||||
<button
|
<button type="button"
|
||||||
onClick={() => belgeyiAnalizEt(b)}
|
onClick={() => belgeyiAnalizEt(b)}
|
||||||
disabled={busy !== null}
|
disabled={busy !== null}
|
||||||
className="text-[10px] font-bold text-amber-700 hover:text-amber-800 disabled:opacity-40 whitespace-nowrap"
|
className="text-[10px] font-bold text-amber-700 hover:text-amber-800 disabled:opacity-40 whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{busy === 'belge' ? '…' : 'AI analiz'}
|
{busy === 'belge' ? '…' : 'AI analiz'}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button type="button"
|
||||||
onClick={() => belgeyiAnalizEt(b, 'derin')}
|
onClick={() => belgeyiAnalizEt(b, 'derin')}
|
||||||
disabled={busy !== null}
|
disabled={busy !== null}
|
||||||
className="text-[10px] font-bold text-indigo-700 hover:text-indigo-800 disabled:opacity-40 whitespace-nowrap"
|
className="text-[10px] font-bold text-indigo-700 hover:text-indigo-800 disabled:opacity-40 whitespace-nowrap"
|
||||||
@@ -428,16 +428,16 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
>
|
>
|
||||||
Derin
|
Derin
|
||||||
</button>
|
</button>
|
||||||
{okunabilirMi(b.ad) && <button onClick={() => metniIncele(b)} disabled={busy !== null || !b.erisilebilir}
|
{okunabilirMi(b.ad) && <button type="button" onClick={() => metniIncele(b)} disabled={busy !== null || !b.erisilebilir}
|
||||||
aria-label={`${b.ad} metnini incele`} className="text-[10px] text-blue-700 disabled:opacity-40">Metni incele</button>}
|
aria-label={`${b.ad} metnini incele`} className="text-[10px] text-blue-700 disabled:opacity-40">Metni incele</button>}
|
||||||
{b.tur === 'ihale' && okunabilirMi(b.ad) && (
|
{b.tur === 'ihale' && okunabilirMi(b.ad) && (
|
||||||
<button onClick={() => kalemleriYenidenCikar(b)} disabled={busy !== null || yukleniyor || !b.erisilebilir}
|
<button type="button" onClick={() => kalemleriYenidenCikar(b)} disabled={busy !== null || yukleniyor || !b.erisilebilir}
|
||||||
aria-label={`${b.ad} için kalem çıkarımını yeniden dene`}
|
aria-label={`${b.ad} için kalem çıkarımını yeniden dene`}
|
||||||
className="text-[10px] font-bold text-blue-700 disabled:opacity-40">
|
className="text-[10px] font-bold text-blue-700 disabled:opacity-40">
|
||||||
{busy === 'kalem' ? 'İşleniyor…' : 'Kalemleri yeniden çıkar'}
|
{busy === 'kalem' ? 'İşleniyor…' : 'Kalemleri yeniden çıkar'}
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
<button disabled={busy !== null || yukleniyor} onClick={() => belgeSil(b.id)} className="text-slate-300 hover:text-red-600" aria-label="Sil">
|
<button type="button" disabled={busy !== null || yukleniyor} onClick={() => belgeSil(b.id)} className="text-slate-300 hover:text-red-600" aria-label="Sil">
|
||||||
<Trash2 className="w-3.5 h-3.5" />
|
<Trash2 className="w-3.5 h-3.5" />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -459,7 +459,7 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
assertCurrent();
|
assertCurrent();
|
||||||
setIsAiSpecAnalyzerOpen(true);
|
setIsAiSpecAnalyzerOpen(true);
|
||||||
}} />}
|
}} />}
|
||||||
<button onClick={()=>setMetinOnizleme(null)} className="text-xs underline">Metin önizlemesini kapat</button>
|
<button type="button" onClick={()=>setMetinOnizleme(null)} className="text-xs underline">Metin önizlemesini kapat</button>
|
||||||
</section>}
|
</section>}
|
||||||
|
|
||||||
{(ekapIhalesi || belgeler.length > 0) && (
|
{(ekapIhalesi || belgeler.length > 0) && (
|
||||||
@@ -478,7 +478,7 @@ const TenderDocumentSession = ({ tender }) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button
|
<button type="button"
|
||||||
onClick={derinAnalizEt}
|
onClick={derinAnalizEt}
|
||||||
disabled={busy !== null}
|
disabled={busy !== null}
|
||||||
className="w-full bg-amber-400 hover:bg-amber-300 disabled:opacity-40 text-slate-950 font-black text-xs px-4 py-2.5 rounded-xl flex items-center justify-center gap-2"
|
className="w-full bg-amber-400 hover:bg-amber-300 disabled:opacity-40 text-slate-950 font-black text-xs px-4 py-2.5 rounded-xl flex items-center justify-center gap-2"
|
||||||
|
|||||||
Reference in New Issue
Block a user