Spaces:
Build error
Build error
Álvaro Valenzuela Valdes commited on
Commit ·
4c7260e
1
Parent(s): 9fcafa1
Fix live badge prop issue and derive live badge internally
Browse files
frontend/app/page.tsx
CHANGED
|
@@ -255,7 +255,6 @@ export default function HomePage() {
|
|
| 255 |
onAnalyze={handleTenderSelect}
|
| 256 |
forceShowFollowed={activeTab === "My Portfolio"}
|
| 257 |
initialKeyword={searchKeyword}
|
| 258 |
-
showLiveDefaultBadge={!searchKeyword && activeTab === "Tender Search"}
|
| 259 |
lang={lang}
|
| 260 |
/>
|
| 261 |
)}
|
|
|
|
| 255 |
onAnalyze={handleTenderSelect}
|
| 256 |
forceShowFollowed={activeTab === "My Portfolio"}
|
| 257 |
initialKeyword={searchKeyword}
|
|
|
|
| 258 |
lang={lang}
|
| 259 |
/>
|
| 260 |
)}
|
frontend/components/TenderSearch.tsx
CHANGED
|
@@ -43,6 +43,7 @@ export default function TenderSearch({ tenders, onSearch, onAnalyze, forceShowFo
|
|
| 43 |
|
| 44 |
const isTenderCode = /^[0-9]+-[0-9]+-[A-Z0-9]+$/i.test(keyword);
|
| 45 |
const isLiveSearch = Boolean(isTenderCode || providerCode || orgCode || status || date);
|
|
|
|
| 46 |
const searchButtonLabel = isLoading
|
| 47 |
? "Searching..."
|
| 48 |
: isLiveSearch
|
|
@@ -300,14 +301,19 @@ export default function TenderSearch({ tenders, onSearch, onAnalyze, forceShowFo
|
|
| 300 |
</div>
|
| 301 |
|
| 302 |
{/* Results Controls */}
|
| 303 |
-
<div className="flex
|
| 304 |
-
<div className="flex items-center gap-3">
|
| 305 |
<h3 className="text-lg font-bold text-white">
|
| 306 |
{showOnlyFollowed ? "Saved Opportunities" : "Market Results"}
|
| 307 |
</h3>
|
| 308 |
<span className="text-[10px] bg-white/5 text-slate-400 px-2 py-0.5 rounded-full border border-white/5">
|
| 309 |
{filteredTenders.length} items
|
| 310 |
</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 311 |
</div>
|
| 312 |
{followedCodes.length > 0 && (
|
| 313 |
<button
|
|
|
|
| 43 |
|
| 44 |
const isTenderCode = /^[0-9]+-[0-9]+-[A-Z0-9]+$/i.test(keyword);
|
| 45 |
const isLiveSearch = Boolean(isTenderCode || providerCode || orgCode || status || date);
|
| 46 |
+
const showLiveDefaultBadge = !showOnlyFollowed && !keyword && !providerCode && !orgCode && !status && !date;
|
| 47 |
const searchButtonLabel = isLoading
|
| 48 |
? "Searching..."
|
| 49 |
: isLiveSearch
|
|
|
|
| 301 |
</div>
|
| 302 |
|
| 303 |
{/* Results Controls */}
|
| 304 |
+
<div className="flex flex-col gap-3 px-2 md:flex-row md:items-center md:justify-between">
|
| 305 |
+
<div className="flex flex-wrap items-center gap-3">
|
| 306 |
<h3 className="text-lg font-bold text-white">
|
| 307 |
{showOnlyFollowed ? "Saved Opportunities" : "Market Results"}
|
| 308 |
</h3>
|
| 309 |
<span className="text-[10px] bg-white/5 text-slate-400 px-2 py-0.5 rounded-full border border-white/5">
|
| 310 |
{filteredTenders.length} items
|
| 311 |
</span>
|
| 312 |
+
{showLiveDefaultBadge && (
|
| 313 |
+
<span className="text-[10px] bg-emerald-500/10 text-emerald-200 px-2 py-0.5 rounded-full border border-emerald-500/20 font-bold uppercase tracking-[0.25em]">
|
| 314 |
+
Live Mercado Público data
|
| 315 |
+
</span>
|
| 316 |
+
)}
|
| 317 |
</div>
|
| 318 |
{followedCodes.length > 0 && (
|
| 319 |
<button
|