Skip to content

Commit a44f745

Browse files
rajbosCopilot
andcommitted
fix: move processDataForMonth before use to fix react-compiler lint errors
The React Compiler (eslint-plugin-react-hooks v7) now enforces that const declarations are used after they are declared. processDataForMonth was defined after the useEffect that calls it, causing two lint errors: - Cannot access variable before it is declared - Existing memoization could not be preserved Also added processDataForMonth to the useEffect dependency array. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 3b62ad2 commit a44f745

1 file changed

Lines changed: 56 additions & 56 deletions

File tree

src/App.tsx

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -541,62 +541,6 @@ function App() {
541541
return data.filter(item => item.user === selectedSearchUser);
542542
}, [data, selectedSearchUser]);
543543

544-
// Reprocess data when month selection changes
545-
useEffect(() => {
546-
if (rawData && selectedMonth) {
547-
processDataForMonth(rawData, selectedMonth);
548-
}
549-
}, [selectedMonth, rawData, selectedPlan]);
550-
551-
// Reprocess display data when user selection changes
552-
useEffect(() => {
553-
if (displayData && displayData.length > 0) {
554-
// Get unique models from display data
555-
const models = Array.from(new Set(displayData.map(item => item.model)));
556-
setUniqueModels(models);
557-
558-
// Aggregate data by day and model for display data
559-
const aggregated = aggregateDataByDay(displayData);
560-
setAggregatedData(aggregated);
561-
562-
// Get model usage summary for display data
563-
const summary = getModelUsageSummary(displayData);
564-
setModelSummary(summary);
565-
566-
// Get daily model data for bar chart for display data
567-
const dailyData = getDailyModelData(displayData);
568-
setDailyModelData(dailyData);
569-
570-
// Get power users data for display data
571-
const powerUsers = getPowerUsers(displayData);
572-
setPowerUserSummary(powerUsers);
573-
574-
// Get power user daily breakdown for display data
575-
const powerUserNames = powerUsers.powerUsers.map(user => user.user);
576-
const powerUserBreakdown = getPowerUserDailyBreakdown(displayData, powerUserNames);
577-
setPowerUserDailyBreakdown(powerUserBreakdown);
578-
579-
// Get count of users exceeding quota for display data
580-
const exceedingUsersCount = getUniqueUsersExceedingQuota(displayData, selectedPlan);
581-
setUsersExceedingQuota(exceedingUsersCount);
582-
583-
// Compute exceeded users overview for the overview dialog
584-
setExceededUsersOverviewData(getExceededUsersOverview(displayData));
585-
586-
// Get projected count of users who will exceed quota by month-end for display data
587-
const projectedExceedingUsersCount = getProjectedUsersExceedingQuota(displayData, selectedPlan);
588-
setProjectedUsersExceedingQuota(projectedExceedingUsersCount);
589-
590-
// Get projected users details for display data
591-
const projectedDetails = getProjectedUsersExceedingQuotaDetails(displayData, selectedPlan);
592-
setProjectedUsersData(projectedDetails);
593-
594-
// Get the last date available in the display data
595-
const lastDate = getLastDateFromData(displayData);
596-
setLastDateAvailable(lastDate);
597-
}
598-
}, [displayData, selectedPlan]);
599-
600544
/**
601545
* Process data for a specific month and update all derived state
602546
* This function aggregates and processes data for the selected month only
@@ -663,7 +607,63 @@ function App() {
663607
setUserAnalysisData(analysisData);
664608
}
665609
}, [selectedPlan, selectedSearchUser]);
610+
611+
// Reprocess data when month selection changes
612+
useEffect(() => {
613+
if (rawData && selectedMonth) {
614+
processDataForMonth(rawData, selectedMonth);
615+
}
616+
}, [selectedMonth, rawData, selectedPlan, processDataForMonth]);
666617

618+
// Reprocess display data when user selection changes
619+
useEffect(() => {
620+
if (displayData && displayData.length > 0) {
621+
// Get unique models from display data
622+
const models = Array.from(new Set(displayData.map(item => item.model)));
623+
setUniqueModels(models);
624+
625+
// Aggregate data by day and model for display data
626+
const aggregated = aggregateDataByDay(displayData);
627+
setAggregatedData(aggregated);
628+
629+
// Get model usage summary for display data
630+
const summary = getModelUsageSummary(displayData);
631+
setModelSummary(summary);
632+
633+
// Get daily model data for bar chart for display data
634+
const dailyData = getDailyModelData(displayData);
635+
setDailyModelData(dailyData);
636+
637+
// Get power users data for display data
638+
const powerUsers = getPowerUsers(displayData);
639+
setPowerUserSummary(powerUsers);
640+
641+
// Get power user daily breakdown for display data
642+
const powerUserNames = powerUsers.powerUsers.map(user => user.user);
643+
const powerUserBreakdown = getPowerUserDailyBreakdown(displayData, powerUserNames);
644+
setPowerUserDailyBreakdown(powerUserBreakdown);
645+
646+
// Get count of users exceeding quota for display data
647+
const exceedingUsersCount = getUniqueUsersExceedingQuota(displayData, selectedPlan);
648+
setUsersExceedingQuota(exceedingUsersCount);
649+
650+
// Compute exceeded users overview for the overview dialog
651+
setExceededUsersOverviewData(getExceededUsersOverview(displayData));
652+
653+
// Get projected count of users who will exceed quota by month-end for display data
654+
const projectedExceedingUsersCount = getProjectedUsersExceedingQuota(displayData, selectedPlan);
655+
setProjectedUsersExceedingQuota(projectedExceedingUsersCount);
656+
657+
// Get projected users details for display data
658+
const projectedDetails = getProjectedUsersExceedingQuotaDetails(displayData, selectedPlan);
659+
setProjectedUsersData(projectedDetails);
660+
661+
// Get the last date available in the display data
662+
const lastDate = getLastDateFromData(displayData);
663+
setLastDateAvailable(lastDate);
664+
}
665+
}, [displayData, selectedPlan]);
666+
667667
const handlePowerUserSelect = useCallback((userName: string | null) => {
668668
setSelectedPowerUser(userName);
669669
}, []);

0 commit comments

Comments
 (0)