@@ -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