diff --git a/app/api/dashboard/metrics/route.ts b/app/api/dashboard/metrics/route.ts
index 6b6c2cd..b0facf6 100644
--- a/app/api/dashboard/metrics/route.ts
+++ b/app/api/dashboard/metrics/route.ts
@@ -91,13 +91,24 @@ export async function GET(request: NextRequest) {
const metrics = sessionMetrics(chatSessions, companyConfigForMetrics);
- // Calculate date range from sessions
+ // Calculate date range from ALL sessions (not filtered) to get the full available range
let dateRange: { minDate: string; maxDate: string } | null = null;
- if (prismaSessions.length > 0) {
- const dates = prismaSessions.map(s => new Date(s.startTime)).sort((a, b) => a.getTime() - b.getTime());
+ const allSessions = await prisma.session.findMany({
+ where: {
+ companyId: user.companyId,
+ },
+ select: {
+ startTime: true,
+ },
+ orderBy: {
+ startTime: 'asc',
+ },
+ });
+
+ if (allSessions.length > 0) {
dateRange = {
- minDate: dates[0].toISOString().split('T')[0], // First session date
- maxDate: dates[dates.length - 1].toISOString().split('T')[0] // Last session date
+ minDate: allSessions[0].startTime.toISOString().split('T')[0], // First session date
+ maxDate: allSessions[allSessions.length - 1].startTime.toISOString().split('T')[0] // Last session date
};
}
diff --git a/app/dashboard/overview/page.tsx b/app/dashboard/overview/page.tsx
index 65fbdb5..718891f 100644
--- a/app/dashboard/overview/page.tsx
+++ b/app/dashboard/overview/page.tsx
@@ -84,12 +84,15 @@ function DashboardContent() {
}
};
- // Handle date range changes
+ // Handle date range changes with proper memoization
const handleDateRangeChange = useCallback((startDate: string, endDate: string) => {
- setSelectedStartDate(startDate);
- setSelectedEndDate(endDate);
- fetchMetrics(startDate, endDate);
- }, []);
+ // Only update if dates actually changed to prevent unnecessary API calls
+ if (startDate !== selectedStartDate || endDate !== selectedEndDate) {
+ setSelectedStartDate(startDate);
+ setSelectedEndDate(endDate);
+ fetchMetrics(startDate, endDate);
+ }
+ }, [selectedStartDate, selectedEndDate]);
useEffect(() => {
// Redirect if not authenticated
@@ -329,8 +332,8 @@ function DashboardContent() {
- {/* Date Range Picker - Temporarily disabled to debug infinite loop */}
- {/* {dateRange && (
+ {/* Date Range Picker */}
+ {dateRange && (