From 2fbf7ecd8b933dcb430198b5ff8490ca7ade0451 Mon Sep 17 00:00:00 2001 From: David Kifer Date: Wed, 22 Jul 2026 19:20:11 -0400 Subject: [PATCH] Fix JobFeeds filter thresholds and direct live feed state update --- src/components/JobFeeds.tsx | 47 +++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/src/components/JobFeeds.tsx b/src/components/JobFeeds.tsx index f5d2352..ef282d6 100644 --- a/src/components/JobFeeds.tsx +++ b/src/components/JobFeeds.tsx @@ -27,21 +27,42 @@ export const JobFeeds: React.FC = ({ }) => { const [searchTerm, setSearchTerm] = useState(''); const [selectedPlatform, setSelectedPlatform] = useState('ALL'); - const [minMatch, setMinMatch] = useState(80); + const [minMatch, setMinMatch] = useState(0); const [appliedFeedIds, setAppliedFeedIds] = useState([]); + const [isFetchingFeeds, setIsFetchingFeeds] = useState(false); + const [localFeeds, setLocalFeeds] = useState(jobFeeds); - const filteredFeeds = jobFeeds.filter(feed => { + const displayFeeds = localFeeds.length > 0 ? localFeeds : jobFeeds; + + const filteredFeeds = displayFeeds.filter(feed => { const matchesSearch = feed.title.toLowerCase().includes(searchTerm.toLowerCase()) || feed.company.toLowerCase().includes(searchTerm.toLowerCase()) || feed.location.toLowerCase().includes(searchTerm.toLowerCase()); const matchesPlatform = selectedPlatform === 'ALL' || feed.platform === selectedPlatform; - const matchesMatch = feed.estimatedMatch >= minMatch; + const matchesMatch = (feed.estimatedMatch || 80) >= minMatch; return matchesSearch && matchesPlatform && matchesMatch; }); + const handleFetchLiveFeeds = async () => { + setIsFetchingFeeds(true); + try { + const res = await fetch('/api/jobs/fetch-feeds'); + if (res.ok) { + const data = await res.json(); + if (data.success && Array.isArray(data.jobs)) { + setLocalFeeds(data.jobs); + } + } + } catch (e) { + console.error('Failed to fetch live job feeds:', e); + } finally { + setIsFetchingFeeds(false); + } + }; + const handleApply = async (feed: JobFeedItem) => { setAppliedFeedIds(prev => [...prev, feed.id]); await onQuickApplyFeed(feed); @@ -63,19 +84,15 @@ export const JobFeeds: React.FC = ({
- - Total Feeds: {jobFeeds.length} + + Total Feeds: {displayFeeds.length}
@@ -116,7 +133,7 @@ export const JobFeeds: React.FC = ({ {minMatch}% setMinMatch(Number(e.target.value))}