diff --git a/apps/web/pages/insights/index.tsx b/apps/web/pages/insights/index.tsx
index fd65f39a53..8782acb0bb 100644
--- a/apps/web/pages/insights/index.tsx
+++ b/apps/web/pages/insights/index.tsx
@@ -20,19 +20,6 @@ import { RefreshCcw, UserPlus, Users } from "@calcom/ui/components/icon";
import PageWrapper from "@components/PageWrapper";
-const Heading = () => {
- const { t } = useLocale();
-
- return (
-
-
-
-
-
diff --git a/packages/features/insights/components/AverageEventDurationChart.tsx b/packages/features/insights/components/AverageEventDurationChart.tsx
index 7e397ca8f3..db1e47b081 100644
--- a/packages/features/insights/components/AverageEventDurationChart.tsx
+++ b/packages/features/insights/components/AverageEventDurationChart.tsx
@@ -12,10 +12,10 @@ import { LoadingInsight } from "./LoadingInsights";
export const AverageEventDurationChart = () => {
const { t } = useLocale();
const { filter } = useFilterContext();
- const { dateRange, selectedMemberUserId, isAll } = filter;
+ const { dateRange, selectedMemberUserId, isAll, initialConfig } = filter;
const [startDate, endDate] = dateRange;
const { selectedTeamId: teamId, selectedUserId } = filter;
-
+ const initialConfigIsReady = !!(initialConfig?.teamId || initialConfig?.userId || initialConfig?.isAll);
const { data, isSuccess, isLoading } = trpc.viewer.insights.averageEventDuration.useQuery(
{
startDate: startDate.toISOString(),
@@ -30,6 +30,8 @@ export const AverageEventDurationChart = () => {
trpc: {
context: { skipBatch: true },
},
+ // At least one of the following initial configs should have a value
+ enabled: initialConfigIsReady,
}
);
diff --git a/packages/features/insights/components/BookingKPICards.tsx b/packages/features/insights/components/BookingKPICards.tsx
index 097446f70c..2e385dfda9 100644
--- a/packages/features/insights/components/BookingKPICards.tsx
+++ b/packages/features/insights/components/BookingKPICards.tsx
@@ -11,7 +11,9 @@ import { KPICard } from "./KPICard";
export const BookingKPICards = () => {
const { t } = useLocale();
const { filter } = useFilterContext();
- const { dateRange, selectedEventTypeId, selectedUserId, selectedMemberUserId, isAll } = filter;
+ const { dateRange, selectedEventTypeId, selectedUserId, selectedMemberUserId, isAll, initialConfig } =
+ filter;
+ const initialConfigIsReady = !!(initialConfig?.teamId || initialConfig?.userId || initialConfig?.isAll);
const [startDate, endDate] = dateRange;
const { selectedTeamId: teamId } = filter;
@@ -31,6 +33,7 @@ export const BookingKPICards = () => {
trpc: {
context: { skipBatch: true },
},
+ enabled: initialConfigIsReady,
}
);
diff --git a/packages/features/insights/components/BookingStatusLineChart.tsx b/packages/features/insights/components/BookingStatusLineChart.tsx
index 4bb0f37956..a322ba47ca 100644
--- a/packages/features/insights/components/BookingStatusLineChart.tsx
+++ b/packages/features/insights/components/BookingStatusLineChart.tsx
@@ -19,7 +19,9 @@ export const BookingStatusLineChart = () => {
dateRange,
selectedEventTypeId,
isAll,
+ initialConfig,
} = filter;
+ const initialConfigIsReady = !!(initialConfig?.teamId || initialConfig?.userId || initialConfig?.isAll);
const [startDate, endDate] = dateRange;
if (!startDate || !endDate) return null;
@@ -43,6 +45,7 @@ export const BookingStatusLineChart = () => {
trpc: {
context: { skipBatch: true },
},
+ enabled: initialConfigIsReady,
}
);
diff --git a/packages/features/insights/components/LeastBookedTeamMembersTable.tsx b/packages/features/insights/components/LeastBookedTeamMembersTable.tsx
index 0fdf794dca..a43e6bc07c 100644
--- a/packages/features/insights/components/LeastBookedTeamMembersTable.tsx
+++ b/packages/features/insights/components/LeastBookedTeamMembersTable.tsx
@@ -11,7 +11,7 @@ import { TotalBookingUsersTable } from "./TotalBookingUsersTable";
export const LeastBookedTeamMembersTable = () => {
const { t } = useLocale();
const { filter } = useFilterContext();
- const { dateRange, selectedEventTypeId, selectedTeamId: teamId, isAll } = filter;
+ const { dateRange, selectedEventTypeId, selectedTeamId: teamId, isAll, initialConfig } = filter;
const [startDate, endDate] = dateRange;
const { data, isSuccess, isLoading } = trpc.viewer.insights.membersWithLeastBookings.useQuery(
@@ -27,6 +27,7 @@ export const LeastBookedTeamMembersTable = () => {
trpc: {
context: { skipBatch: true },
},
+ enabled: !!(initialConfig?.teamId || initialConfig?.userId || initialConfig?.isAll),
}
);
diff --git a/packages/features/insights/components/MostBookedTeamMembersTable.tsx b/packages/features/insights/components/MostBookedTeamMembersTable.tsx
index a79899c44d..5c006dabe1 100644
--- a/packages/features/insights/components/MostBookedTeamMembersTable.tsx
+++ b/packages/features/insights/components/MostBookedTeamMembersTable.tsx
@@ -11,7 +11,7 @@ import { TotalBookingUsersTable } from "./TotalBookingUsersTable";
export const MostBookedTeamMembersTable = () => {
const { t } = useLocale();
const { filter } = useFilterContext();
- const { dateRange, selectedEventTypeId, isAll } = filter;
+ const { dateRange, selectedEventTypeId, isAll, initialConfig } = filter;
const [startDate, endDate] = dateRange;
const { selectedTeamId: teamId } = filter;
@@ -28,6 +28,7 @@ export const MostBookedTeamMembersTable = () => {
trpc: {
context: { skipBatch: true },
},
+ enabled: !!(initialConfig?.teamId || initialConfig?.userId || initialConfig?.isAll),
}
);
diff --git a/packages/features/insights/components/PopularEventsTable.tsx b/packages/features/insights/components/PopularEventsTable.tsx
index 0efb744209..4347ca6799 100644
--- a/packages/features/insights/components/PopularEventsTable.tsx
+++ b/packages/features/insights/components/PopularEventsTable.tsx
@@ -10,7 +10,7 @@ import { LoadingInsight } from "./LoadingInsights";
export const PopularEventsTable = () => {
const { t } = useLocale();
const { filter } = useFilterContext();
- const { dateRange, selectedMemberUserId, selectedUserId, isAll } = filter;
+ const { dateRange, selectedMemberUserId, selectedUserId, isAll, initialConfig } = filter;
const [startDate, endDate] = dateRange;
const { selectedTeamId: teamId } = filter;
@@ -28,6 +28,7 @@ export const PopularEventsTable = () => {
trpc: {
context: { skipBatch: true },
},
+ enabled: !!(initialConfig?.teamId || initialConfig?.userId || initialConfig?.isAll),
}
);
diff --git a/packages/features/insights/context/FiltersProvider.tsx b/packages/features/insights/context/FiltersProvider.tsx
index 9f480e707f..339aba49b9 100644
--- a/packages/features/insights/context/FiltersProvider.tsx
+++ b/packages/features/insights/context/FiltersProvider.tsx
@@ -69,7 +69,7 @@ export function FiltersProvider({ children }: { children: React.ReactNode }) {
initialConfig: {
userId: null,
teamId: null,
- isAll: false,
+ isAll: null,
},
});
diff --git a/packages/features/insights/context/provider.ts b/packages/features/insights/context/provider.ts
index 025d1b4135..41134bd859 100644
--- a/packages/features/insights/context/provider.ts
+++ b/packages/features/insights/context/provider.ts
@@ -15,7 +15,7 @@ interface IFilter {
initialConfig?: {
teamId?: number | null;
userId?: number | null;
- isAll?: boolean;
+ isAll?: boolean | null;
};
}
diff --git a/packages/features/insights/filters/TeamAndSelfList.tsx b/packages/features/insights/filters/TeamAndSelfList.tsx
index 192302a23d..afb80a2218 100644
--- a/packages/features/insights/filters/TeamAndSelfList.tsx
+++ b/packages/features/insights/filters/TeamAndSelfList.tsx
@@ -25,6 +25,12 @@ export const TeamAndSelfList = () => {
});
useEffect(() => {
+ const isInitialSetupAlready = !!(
+ filter.initialConfig?.teamId ||
+ filter.initialConfig?.userId ||
+ filter.initialConfig?.isAll
+ );
+ if (isInitialSetupAlready) return;
if (isSuccess && session.data?.user.id) {
// We have a team?
if (data[0]?.id && data && data?.length > 0) {
@@ -49,19 +55,8 @@ export const TeamAndSelfList = () => {
},
});
}
- } else if (session.data?.user.id) {
- setConfigFilters({
- selectedUserId: session.data?.user.id,
- selectedTeamId: null,
- isAll: false,
- initialConfig: {
- teamId: null,
- userId: session.data?.user.id,
- isAll: false,
- },
- });
}
- }, [data, session.data?.user.id]);
+ }, [data, session.data?.user.id, filter.initialConfig, isSuccess, setConfigFilters]);
const getTextPopover = () => {
if (isAll) {