({
+ queryKey: ['admin', 'users', userId, 'sharing-stats'],
+ queryFn: async () => {
+ const { data } = await api.get
(`/admin/users/${userId}/sharing-stats`);
+ return data;
+ },
+ enabled: userId !== null,
+ });
+}
+
export function useAdminDashboard() {
return useQuery({
queryKey: ['admin', 'dashboard'],
diff --git a/frontend/src/hooks/useCalendars.ts b/frontend/src/hooks/useCalendars.ts
index 825de5e..7bbfd3f 100644
--- a/frontend/src/hooks/useCalendars.ts
+++ b/frontend/src/hooks/useCalendars.ts
@@ -3,7 +3,11 @@ import { useQuery } from '@tanstack/react-query';
import api from '@/lib/api';
import type { Calendar, SharedCalendarMembership } from '@/types';
-export function useCalendars() {
+interface UseCalendarsOptions {
+ pollingEnabled?: boolean;
+}
+
+export function useCalendars({ pollingEnabled = false }: UseCalendarsOptions = {}) {
const ownedQuery = useQuery({
queryKey: ['calendars'],
queryFn: async () => {
@@ -18,7 +22,7 @@ export function useCalendars() {
const { data } = await api.get('/shared-calendars');
return data;
},
- refetchInterval: 5_000,
+ refetchInterval: pollingEnabled ? 5_000 : false,
staleTime: 3_000,
});