Open and retain tender details discovered outside the main pool
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { searchTender } from '../services/searchTender';
|
||||
import { normalizeTenderSearch, matchingItemResults } from '../services/tenderSearch';
|
||||
import React, {createContext, useContext, useState, useEffect, useMemo, useRef } from 'react';
|
||||
import { parseWebsiteCapabilitiesDynamically } from '../services/webScraperService';
|
||||
@@ -281,6 +282,14 @@ export const AppProvider = ({ children }) => {
|
||||
}, []);
|
||||
|
||||
const [activeTenderDetail, setActiveTenderDetail] = useState(null);
|
||||
const openSearchTender = (result) => {
|
||||
const existing=tenders.find(t=>t.ikn===result.ikn);
|
||||
const candidate=existing || searchTender(result);
|
||||
const merged=applyTenderStates([candidate],savedTenderStates.current).find(t=>t.ikn===candidate.ikn) || candidate;
|
||||
if(!existing) setTenders(previous=>previous.some(t=>t.ikn===merged.ikn) ? previous : [...previous,merged]);
|
||||
setActiveTenderDetail(merged);
|
||||
};
|
||||
|
||||
const [detailLoad, setDetailLoad] = useState(null);
|
||||
const [detailRetry, setDetailRetry] = useState(0);
|
||||
const retryTenderDetail = () => setDetailRetry(value => value + 1);
|
||||
@@ -288,7 +297,7 @@ export const AppProvider = ({ children }) => {
|
||||
// Canlı ihalede detay açıldığında ilan metnini API'den tamamla
|
||||
useEffect(() => {
|
||||
const t = activeTenderDetail;
|
||||
if (!t || !t.id?.startsWith('ilan-') || t.aciklama) { setDetailLoad(null); return; }
|
||||
if (!t || !(t.id?.startsWith('ilan-') || t.id?.startsWith('ekap-')) || t.aciklama) { setDetailLoad(null); return; }
|
||||
let cancelled = false;
|
||||
const controller = new AbortController();
|
||||
setDetailLoad({id:t.id,status:'loading'});
|
||||
@@ -744,6 +753,7 @@ export const AppProvider = ({ children }) => {
|
||||
addSavedFilter,
|
||||
deleteSavedFilter,
|
||||
activeTenderDetail,
|
||||
openSearchTender,
|
||||
detailLoad,
|
||||
retryTenderDetail,
|
||||
setActiveTenderDetail,
|
||||
|
||||
Reference in New Issue
Block a user