@@ -59,28 +59,13 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => {
5959 const message = event . data
6060
6161 if ( message . type === "usagePreviewData" ) {
62- console . log ( "[UsagePreview] Received usagePreviewData:" , message )
63- console . log ( "[UsagePreview] Data structure:" , {
64- hasData : ! ! message . data ,
65- dataKeys : message . data ? Object . keys ( message . data ) : [ ] ,
66- hasDays : message . data ?. days !== undefined ,
67- daysIsArray : Array . isArray ( message . data ?. days ) ,
68- daysLength : message . data ?. days ?. length || 0 ,
69- } )
70-
7162 if ( message . error ) {
72- console . log ( "[UsagePreview] Setting error:" , message . error )
7363 setError ( message . error )
7464 } else if ( message . data ) {
7565 // Validate the data structure
7666 if ( ! message . data . days || ! Array . isArray ( message . data . days ) ) {
77- console . error (
78- "[UsagePreview] Invalid data structure - missing or non-array days:" ,
79- message . data ,
80- )
8167 setError ( "Invalid data format received" )
8268 } else {
83- console . log ( "[UsagePreview] Setting valid data with" , message . data . days . length , "days" )
8469 setData ( message . data )
8570 }
8671 }
@@ -106,8 +91,8 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => {
10691
10792 const getBarHeight = ( cost : number ) : number => {
10893 if ( ! data || ! data . days || data . days . length === 0 ) return 1
109- const maxCost = Math . max ( ...data . days . map ( ( d ) => d . cost ) )
110- return Math . max ( 1 , ~ ~ ( cost / maxCost ) * 100 ) // Avoid NaN and enforce minimum height for visibility
94+ const maxCost = ~ ~ Math . max ( ...data . days . map ( ( d ) => d . cost ) ) // Avoid NaN
95+ return Math . max ( 1 , ~ ~ ( cost / maxCost ) * 100 ) // Enforce minimum height for visibility
11196 }
11297
11398 // Retry loading
@@ -134,7 +119,7 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => {
134119 }
135120
136121 // Error state
137- if ( error ) {
122+ if ( error || ! data ) {
138123 return (
139124 < div
140125 className = "cursor-pointer group rounded-lg bg-vscode-editor-background hover:bg-vscode-list-hoverBackground transition-colors relative"
@@ -152,34 +137,14 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => {
152137 )
153138 }
154139
155- // Use placeholder data if no real data available
156- const displayData = data || {
157- days : [
158- { date : "2025-09-17" , taskCount : 2 , tokenCount : 3200000 , cost : 3.2 } ,
159- { date : "2025-09-18" , taskCount : 1 , tokenCount : 1600000 , cost : 1.6 } ,
160- { date : "2025-09-19" , taskCount : 1 , tokenCount : 2400000 , cost : 2.4 } ,
161- { date : "2025-09-20" , taskCount : 0 , tokenCount : 1200000 , cost : 1.2 } ,
162- { date : "2025-09-21" , taskCount : 3 , tokenCount : 4000000 , cost : 4.0 } ,
163- { date : "2025-09-22" , taskCount : 1 , tokenCount : 2800000 , cost : 2.8 } ,
164- { date : "2025-09-23" , taskCount : 1 , tokenCount : 2000000 , cost : 2.61 } ,
165- ] ,
166- totals : {
167- tasks : 9 ,
168- tokens : 14800000 ,
169- cost : 17.81 ,
170- } ,
171- }
172-
173140 return (
174- < div
175- className = "cursor-pointer group rounded-lg bg-vscode-editor-background hover:bg-vscode-list-hoverBackground transition-colors relative"
176- onClick = { onViewDetails } >
141+ < div className = "cursor-pointer group rounded-lg bg-vscode-editor-background relative" onClick = { onViewDetails } >
177142 < div className = "p-4" >
178143 { /* Chart with daily usage bars */ }
179144 < div className = "h-24 min-[450px]:h-40 rounded mb-3 flex items-end gap-1 pb-2" >
180- { displayData . days &&
181- Array . isArray ( displayData . days ) &&
182- displayData . days . map ( ( day , index ) => (
145+ { data &&
146+ Array . isArray ( data . days ) &&
147+ data . days . map ( ( day , index ) => (
183148 < div key = { index } className = "w-full flex flex-col items-center justify-end h-full" >
184149 < div
185150 className = "w-full rounded-t-xs transition-all bg-vscode-button-background"
@@ -193,22 +158,22 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => {
193158 </ div >
194159
195160 { /* Stats text */ }
196- < div className = "flex flex-col justify-between text-sm min-[450px ]:flex-row min-[450px]:items-center" >
161+ < div className = "flex flex-col justify-between text-sm min-[400px ]:flex-row min-[450px]:items-center" >
197162 < span className = "flex items-center gap-1 text-vscode-descriptionForeground" >
198- { t ( "cloud:usageStats.pastDays" , { count : displayData . days . length } ) }
163+ { t ( "cloud:usageStats.pastDays" , { count : data . days . length } ) }
199164 </ span >
200165 < span className = "text-vscode-foreground" >
201- { displayData . totals . tasks } tasks · { formatTokenCount ( displayData . totals . tokens ) } tokens ·{ " " }
202- { formatCost ( displayData . totals . cost ) }
166+ { data . totals . tasks } tasks · { formatTokenCount ( data . totals . tokens ) } tokens ·{ " " }
167+ { formatCost ( data . totals . cost ) }
203168 </ span >
204169 </ div >
205170 </ div >
206171
207172 { /* Hover overlay */ }
208- < div className = "absolute inset-0 bg-vscode-editor-background/95 rounded-lg flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none" >
173+ < div className = "absolute inset-0 bg-vscode-editor-background/85 rounded-lg flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none" >
209174 < div className = "flex items-center gap-2 text-vscode-foreground" >
210175 < span > { t ( "cloud:usageStats.seeMoreStats" ) } </ span >
211- < SquareArrowOutUpRight className = "w-4 h-4 " />
176+ < SquareArrowOutUpRight className = "size-3 " />
212177 </ div >
213178 </ div >
214179 </ div >
0 commit comments