Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 27 additions & 5 deletions frontend/src/pages/AuditLogPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,27 @@ export const AuditLogPage: React.FC = () => {
);

useEffect(() => {
loadUsers();
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadUsers();
}
})();
return () => {
cancelled = true;
};
}, [loadUsers]);

useEffect(() => {
loadEntries(page);
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadEntries(page);
}
})();
return () => {
cancelled = true;
};
}, [page, loadEntries]);

const handleApplyFilters = useCallback(() => {
Expand All @@ -124,9 +140,15 @@ export const AuditLogPage: React.FC = () => {

// Re-fetch when filters are cleared
useEffect(() => {
if (!filterUserId && !filterAction && !filterDateFrom && !filterDateTo) {
loadEntries(1);
}
let cancelled = false;
void (async () => {
if (!cancelled && !filterUserId && !filterAction && !filterDateFrom && !filterDateTo) {
await loadEntries(1);
}
})();
return () => {
cancelled = true;
};
}, [filterUserId, filterAction, filterDateFrom, filterDateTo, loadEntries]);

const toggleExpand = useCallback((id: string) => {
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/pages/ManualLinksPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,15 @@ export const ManualLinksPage: React.FC = () => {
}, [showToast]);

useEffect(() => {
loadData();
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadData();
}
})();
return () => {
cancelled = true;
};
}, [loadData]);

const handleSubmit = async (e: React.FormEvent) => {
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/pages/MetricsDashboardPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,15 @@ export default function MetricsDashboardPage() {
}, [showToast]);

useEffect(() => {
loadMetrics();
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadMetrics();
}
})();
return () => {
cancelled = true;
};
}, [loadMetrics]);

const handleExportCsv = useCallback(async () => {
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/pages/RequirementsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,15 @@ export const RequirementsPage: React.FC = () => {
}, [page, showToast]);

useEffect(() => {
loadRequirements(page);
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadRequirements(page);
}
})();
return () => {
cancelled = true;
};
}, [page, loadRequirements]);

const handleSubmit = async (e: React.FormEvent) => {
Expand Down
14 changes: 12 additions & 2 deletions frontend/src/pages/SuggestionDashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -168,12 +168,22 @@ export const SuggestionDashboard: React.FC = () => {
}, [filters, showToast]);

useEffect(() => {
loadData();
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadData();
}
})();
return () => {
cancelled = true;
};
}, [loadData]);

// Reset focus when suggestion list changes
useEffect(() => {
setFocusedIndex(-1);
queueMicrotask(() => {
setFocusedIndex(-1);
});
}, [suggestions]);

// Scroll focused card into view
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/pages/TestCasesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,15 @@ export const TestCasesPage: React.FC = () => {
}, [page, showToast]);

useEffect(() => {
loadTestCases(page);
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadTestCases(page);
}
})();
return () => {
cancelled = true;
};
}, [page, loadTestCases]);

const handleSubmit = async (e: React.FormEvent) => {
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/pages/TraceabilityMatrixPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,15 @@ export default function TraceabilityMatrixPage() {
}, [showToast]);

useEffect(() => {
loadMatrix();
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadMatrix();
}
})();
return () => {
cancelled = true;
};
}, [loadMatrix]);

const handleExport = async (format: "csv" | "json" | "pdf") => {
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/pages/UserManagementPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,15 @@ export const UserManagementPage: React.FC = () => {
);

useEffect(() => {
loadUsers();
let cancelled = false;
void (async () => {
if (!cancelled) {
await loadUsers();
}
})();
return () => {
cancelled = true;
};
}, [loadUsers]);

// Client-side search/filter
Expand Down
Loading