Fix search input filtering across JobFeeds and ApplicationsTracker with whitespace trimming, multi-attribute matching, and Reset buttons

This commit is contained in:
2026-07-23 12:17:54 -04:00
parent 3b00cceafb
commit f4566645f7
2 changed files with 24 additions and 5 deletions
+1 -1
View File
@@ -1 +1 @@
270801
271040
+23 -4
View File
@@ -48,11 +48,17 @@ export const ApplicationsTracker: React.FC<ApplicationsTrackerProps> = ({
// Filtered applications
const filteredApps = applications.filter(app => {
const matchesSearch =
app.company.toLowerCase().includes(searchTerm.toLowerCase()) ||
app.role.toLowerCase().includes(searchTerm.toLowerCase()) ||
app.location.toLowerCase().includes(searchTerm.toLowerCase());
const term = searchTerm.toLowerCase().trim();
if (!term && statusFilter === 'ALL' && platformFilter === 'ALL' && !autoOnlyFilter) return true;
const companyMatch = (app.company || '').toLowerCase().includes(term);
const roleMatch = (app.role || '').toLowerCase().includes(term);
const locationMatch = (app.location || '').toLowerCase().includes(term);
const platformStrMatch = (app.platform || '').toLowerCase().includes(term);
const notesMatch = (app.notes || '').toLowerCase().includes(term);
const descMatch = (app.jobDescription || '').toLowerCase().includes(term);
const matchesSearch = !term || companyMatch || roleMatch || locationMatch || platformStrMatch || notesMatch || descMatch;
const matchesStatus = statusFilter === 'ALL' || app.status === statusFilter;
const matchesPlatform = platformFilter === 'ALL' || app.platform === platformFilter;
const matchesAuto = !autoOnlyFilter || app.autoApplied === true;
@@ -208,6 +214,19 @@ export const ApplicationsTracker: React.FC<ApplicationsTrackerProps> = ({
<span>Export CSV</span>
</button>
{(searchTerm || statusFilter !== 'ALL' || platformFilter !== 'ALL' || autoOnlyFilter) && (
<button
onClick={() => {
setSearchTerm('');
setStatusFilter('ALL');
setPlatformFilter('ALL');
setAutoOnlyFilter(false);
}}
className="px-3 py-2 rounded-xl bg-indigo-950 border border-indigo-500/40 text-indigo-300 text-xs font-semibold hover:bg-indigo-900 transition-all"
>
Reset Filters
</button>
)}
</div>
</div>