@@ -4,18 +4,10 @@ import { useQueryState } from 'nuqs'
44import { useEffect , useState } from 'react'
55import { pipe } from '@/lib/tinybird'
66import MetricCard from './metric'
7- import { DauChart } from './dau-chart'
8- import { AuthMechChart } from './auth-mech-chart'
9-
10- interface DauDataPoint {
11- day : string
12- active : number
13- }
14-
15- interface AuthMechData {
16- mech : string
17- logins : number
18- }
7+ import { DauChart , DauDataPoint } from './dau-chart'
8+ import { AuthMechChart , AuthMechDataPoint } from './auth-mech-chart'
9+ import { DailySignupsChart , DailySignupsDataPoint } from './daily-signups-chart'
10+ import { DailyLoginFailsChart , DailyLoginFailsDataPoint } from './daily-login-fails-chart'
1911
2012interface ConversionData {
2113 new_signups : number
@@ -29,26 +21,33 @@ export default function Auth0Dashboard() {
2921 const [ monthlyMau , setMonthlyMau ] = useState < number > ( 0 )
3022 const [ conversionRate , setConversionRate ] = useState < number > ( 0 )
3123 const [ dauData , setDauData ] = useState < DauDataPoint [ ] > ( [ ] )
32- const [ authMechData , setAuthMechData ] = useState < AuthMechData [ ] > ( [ ] )
24+ const [ authMechData , setAuthMechData ] = useState < AuthMechDataPoint [ ] > ( [ ] )
25+ const [ dailySignupsData , setDailySignupsData ] = useState < DailySignupsDataPoint [ ] > ( [ ] )
26+ const [ dailyLoginFailsData , setDailyLoginFailsData ] = useState < DailyLoginFailsDataPoint [ ] > ( [ ] )
27+
3328
3429 useEffect ( ( ) => {
3530 async function fetchMetrics ( ) {
3631 if ( ! token ) return
3732
3833 try {
39- const [ monthlySignUpsResult , monthlyMauResult , dauResult , authMechResult , conversionResult ] = await Promise . all ( [
34+ const [ monthlySignUpsResult , monthlyMauResult , dauResult , authMechResult , conversionResult , dailySignupsResult , dailyLoginFailsResult ] = await Promise . all ( [
4035 pipe ( token , 'auth0_signups' ) ,
4136 pipe ( token , 'auth0_mau' ) ,
4237 pipe < { data : DauDataPoint [ ] } > ( token , 'auth0_dau_ts' ) ,
43- pipe < { data : AuthMechData [ ] } > ( token , 'auth0_mech_usage' ) ,
44- pipe < { data : ConversionData [ ] } > ( token , 'auth0_conversion_rate' )
38+ pipe < { data : AuthMechDataPoint [ ] } > ( token , 'auth0_mech_usage' ) ,
39+ pipe < { data : ConversionData [ ] } > ( token , 'auth0_conversion_rate' ) ,
40+ pipe < { data : DailySignupsDataPoint [ ] } > ( token , 'auth0_daily_signups' ) ,
41+ pipe < { data : DailyLoginFailsDataPoint [ ] } > ( token , 'auth0_daily_login_fails' )
4542 ] )
4643
4744 setMonthlySignUps ( monthlySignUpsResult . data [ 0 ] ?. total || 0 )
4845 setMonthlyMau ( monthlyMauResult . data [ 0 ] ?. active || 0 )
4946 setConversionRate ( conversionResult . data [ 0 ] ?. conversion_rate || 0 )
5047 setDauData ( dauResult . data )
5148 setAuthMechData ( authMechResult . data )
49+ setDailySignupsData ( dailySignupsResult . data )
50+ setDailyLoginFailsData ( dailyLoginFailsResult . data )
5251 } catch ( error ) {
5352 console . error ( 'Failed to fetch metrics:' , error )
5453 }
@@ -79,9 +78,15 @@ export default function Auth0Dashboard() {
7978 </ div >
8079
8180 { /* Charts Grid */ }
82- < div className = "grid gap-4 md: grid-cols-2 " >
81+ < div className = "grid gap-4 grid-cols-1 " >
8382 < DauChart data = { dauData } />
83+ </ div >
84+ < div className = "grid gap-4 md:grid-cols-1 xl:grid-cols-2" >
8485 < AuthMechChart data = { authMechData } />
86+ < DailySignupsChart data = { dailySignupsData } />
87+ </ div >
88+ < div className = "grid gap-4 grid-cols-1" >
89+ < DailyLoginFailsChart data = { dailyLoginFailsData } />
8590 </ div >
8691 </ div >
8792 )
0 commit comments