|
1
|
import { useQuery } from "@tanstack/react-query"; |
|
2
|
import { useAuth } from "./useAuth"; |
|
3
|
|
|
4
|
export interface AdminStats { |
|
5
|
totalGuides?: number; |
|
6
|
totalViews?: number; |
|
7
|
totalDownloads?: number; |
|
8
|
totalUsers?: number; |
|
9
|
} |
|
10
|
|
|
11
|
export function useAdmin() { |
|
12
|
const { user, isAuthenticated } = useAuth(); |
|
13
|
|
|
14
|
const { data: adminData, isLoading } = useQuery<any>({ |
|
15
|
queryKey: ["/api/admin/users"], |
|
16
|
enabled: isAuthenticated && user?.role === "admin", |
|
17
|
retry: false, |
|
18
|
}); |
|
19
|
|
|
20
|
return { |
|
21
|
isAdmin: user?.role === "admin", |
|
22
|
adminData, |
|
23
|
isLoading, |
|
24
|
}; |
|
25
|
} |
|
26
|
|
|
27
|
export function useAdminStats() { |
|
28
|
const { isAdmin } = useAdmin(); |
|
29
|
|
|
30
|
const { data: stats, isLoading } = useQuery<AdminStats>({ |
|
31
|
queryKey: ["/api/admin/stats"], |
|
32
|
enabled: isAdmin, |
|
33
|
retry: false, |
|
34
|
}); |
|
35
|
|
|
36
|
return { |
|
37
|
stats, |
|
38
|
isLoading, |
|
39
|
}; |
|
40
|
} |