@@ -23,8 +23,21 @@ interface ConversionData {
2323 conversion_rate : number
2424}
2525
26+ interface SummaryMetrics {
27+ total_users : number
28+ total_applications : number
29+ total_apis : number
30+ total_connections : number
31+ }
32+
2633export default function Auth0Dashboard ( ) {
2734 const [ token ] = useQueryState ( 'token' )
35+ const [ summaryMetrics , setSummaryMetrics ] = useState < SummaryMetrics > ( {
36+ total_users : 0 ,
37+ total_applications : 0 ,
38+ total_apis : 0 ,
39+ total_connections : 0
40+ } )
2841 const [ monthlySignUps , setMonthlySignUps ] = useState < number > ( 0 )
2942 const [ monthlyMau , setMonthlyMau ] = useState < number > ( 0 )
3043 const [ conversionRate , setConversionRate ] = useState < number > ( 0 )
@@ -36,14 +49,34 @@ export default function Auth0Dashboard() {
3649 if ( ! token ) return
3750
3851 try {
39- const [ monthlySignUpsResult , monthlyMauResult , dauResult , authMechResult , conversionResult ] = await Promise . all ( [
52+ const [
53+ usersResult ,
54+ applicationsResult ,
55+ apisResult ,
56+ connectionsResult ,
57+ monthlySignUpsResult ,
58+ monthlyMauResult ,
59+ dauResult ,
60+ authMechResult ,
61+ conversionResult
62+ ] = await Promise . all ( [
63+ pipe ( token , 'auth0_users_total' ) ,
64+ pipe ( token , 'auth0_applications' ) ,
65+ pipe ( token , 'auth0_apis' ) ,
66+ pipe ( token , 'auth0_connections' ) ,
4067 pipe ( token , 'auth0_signups' ) ,
4168 pipe ( token , 'auth0_mau' ) ,
4269 pipe < { data : DauDataPoint [ ] } > ( token , 'auth0_dau_ts' ) ,
4370 pipe < { data : AuthMechData [ ] } > ( token , 'auth0_mech_usage' ) ,
4471 pipe < { data : ConversionData [ ] } > ( token , 'auth0_conversion_rate' )
4572 ] )
4673
74+ setSummaryMetrics ( {
75+ total_users : usersResult . data [ 0 ] ?. total_users || 0 ,
76+ total_applications : applicationsResult . data . length || 0 ,
77+ total_apis : apisResult . data . length || 0 ,
78+ total_connections : connectionsResult . data . length || 0
79+ } )
4780 setMonthlySignUps ( monthlySignUpsResult . data [ 0 ] ?. total || 0 )
4881 setMonthlyMau ( monthlyMauResult . data [ 0 ] ?. active || 0 )
4982 setConversionRate ( conversionResult . data [ 0 ] ?. conversion_rate || 0 )
@@ -59,6 +92,26 @@ export default function Auth0Dashboard() {
5992
6093 return (
6194 < div className = "space-y-8" >
95+ { /* Summary Card */ }
96+ < div className = "grid grid-cols-4 gap-4 p-6 rounded-lg border bg-card text-card-foreground shadow-sm" >
97+ < div >
98+ < p className = "text-sm font-medium text-muted-foreground" > Total Users</ p >
99+ < p className = "text-2xl font-bold" > { summaryMetrics . total_users . toLocaleString ( ) } </ p >
100+ </ div >
101+ < div >
102+ < p className = "text-sm font-medium text-muted-foreground" > Applications</ p >
103+ < p className = "text-2xl font-bold" > { summaryMetrics . total_applications . toLocaleString ( ) } </ p >
104+ </ div >
105+ < div >
106+ < p className = "text-sm font-medium text-muted-foreground" > APIs</ p >
107+ < p className = "text-2xl font-bold" > { summaryMetrics . total_apis . toLocaleString ( ) } </ p >
108+ </ div >
109+ < div >
110+ < p className = "text-sm font-medium text-muted-foreground" > Connections</ p >
111+ < p className = "text-2xl font-bold" > { summaryMetrics . total_connections . toLocaleString ( ) } </ p >
112+ </ div >
113+ </ div >
114+
62115 { /* Metrics Row */ }
63116 < div className = "grid gap-4 md:grid-cols-3" >
64117 < MetricCard
0 commit comments