@@ -53,24 +53,9 @@ function AnalyticsRoute() {
5353 data : summaryDataRaw ,
5454 loading : summaryLoading ,
5555 error : summaryError ,
56- } = useAnalyticsQuery <
57- Array < {
58- total : number ;
59- average : number ;
60- forecasted : number ;
61- } >
62- > ( "spend_summary" , summaryParams ) ;
63-
64- const { data : appsListData } = useAnalyticsQuery <
65- Array < {
66- id : string ;
67- name : string ;
68- creator : string ;
69- tags : string ;
70- totalSpend : number ;
71- createdAt : string ;
72- } >
73- > ( "apps_list" , { } ) ;
56+ } = useAnalyticsQuery ( "spend_summary" , summaryParams ) ;
57+
58+ const { data : appsListData } = useAnalyticsQuery ( "apps_list" , { } ) ;
7459
7560 const untaggedAppsParams = useMemo ( ( ) => {
7661 return {
@@ -84,14 +69,7 @@ function AnalyticsRoute() {
8469 data : untaggedAppsData ,
8570 loading : untaggedAppsLoading ,
8671 error : untaggedAppsError ,
87- } = useAnalyticsQuery <
88- Array < {
89- app_name : string ;
90- creator : string ;
91- total_cost_usd : number ;
92- avg_period_cost_usd : number ;
93- } >
94- > ( "untagged_apps" , untaggedAppsParams ) ;
72+ } = useAnalyticsQuery ( "untagged_apps" , untaggedAppsParams ) ;
9573
9674 const metrics = useMemo ( ( ) => {
9775 if ( ! summaryDataRaw || summaryDataRaw . length === 0 ) {
@@ -104,39 +82,15 @@ function AnalyticsRoute() {
10482 if ( ! appsListData || appsListData . length === 0 ) {
10583 return [ ] ;
10684 }
107- return appsListData . map ( ( app , index ) => {
108- let tags : string [ ] = [ ] ;
109- if ( app . tags ) {
110- try {
111- if ( Array . isArray ( app . tags ) ) {
112- tags = app . tags ;
113- } else if ( typeof app . tags === "string" ) {
114- const trimmedTags = app . tags . trim ( ) ;
115- if ( trimmedTags . startsWith ( "[" ) || trimmedTags . startsWith ( "{" ) ) {
116- tags = JSON . parse ( trimmedTags ) ;
117- } else if ( trimmedTags ) {
118- tags = trimmedTags
119- . split ( "," )
120- . map ( ( t : string ) => t . trim ( ) )
121- . filter ( Boolean ) ;
122- }
123- }
124- } catch ( error ) {
125- console . warn ( "Failed to parse tags for app" , app . name , ":" , error ) ;
126- tags = [ ] ;
127- }
128- }
129-
130- return {
131- id : `${ app . id } -${ app . creator } -${ index } ` ,
132- name : app . name ,
133- creator : app . creator ,
134- spend : Math . round ( app . totalSpend ) ,
135- status : "unknown" as const ,
136- tags,
137- lastRun : app . createdAt ,
138- } ;
139- } ) ;
85+ return appsListData . map ( ( app , index ) => ( {
86+ id : `${ app . id } -${ app . creator } -${ index } ` ,
87+ name : app . name ,
88+ creator : app . creator ,
89+ spend : Math . round ( app . totalSpend ) ,
90+ status : "unknown" as const ,
91+ tags : app . tags ?? [ ] ,
92+ lastRun : app . createdAt ,
93+ } ) ) ;
14094 } , [ appsListData ] ) ;
14195
14296 const untaggedAppsList = useMemo ( ( ) => {
0 commit comments