Now I can see the pattern. The files use different grouping strategies:
student-table.tsx groups by customerId onlyat-risk-students-table.tsx groups by orderIdcompleted-students-table.tsx groups by customerId onlystudent-progress-stats.tsx uses both customerId and orderId inconsistentlyI need to update all files to use a combination of customerId + orderId as the unique student identifier. Let me also read the other files that need to be updated:
Now I understand the full picture. I need to update all files to use customerId + orderId as the unique student identifier. Let me make these changes:
Now update the student-course-details.tsx to filter by both customerId and orderId:
I've updated all 6 files to use a unique combination of Customer ID (Column B) + Order ID (Column C) as the student identifier throughout the app. The grouping logic now creates a composite key like ${customerId}-${orderId} and each student object now includes both customerId and orderId properties for use in filtering and lookups, particularly in the course details dialog.
Now I understand the structure of all three tables. I'll add a CSV export function and an export button to each table. Let me add the export functionality:
Now let me add the same functionality to at-risk-students-table:
Now let me add the same functionality to completed-students-table:
I've added CSV export functionality to all three data tables. Each table now has an "Export CSV" button in the card header that exports the currently filtered data (respecting any search or filter criteria applied). The exports include all relevant columns for each table type: