@@ -39,9 +39,9 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
3939 { /* Drawer */ }
4040 < div className = { cn (
4141 'fixed right-0 top-0 h-full w-full max-w-lg bg-card border-l border-border z-50' ,
42- 'animate-in slide-in-from-right duration-300'
42+ 'animate-in slide-in-from-right duration-300 overflow-hidden '
4343 ) } >
44- < div className = "flex flex-col h-full" >
44+ < div className = "flex flex-col h-full min-w-0 " >
4545 { /* Header */ }
4646 < div className = "flex items-center justify-between p-6 border-b border-border" >
4747 < div >
@@ -55,10 +55,10 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
5555
5656 { /* Content */ }
5757 < ScrollArea className = "flex-1" >
58- < div className = "p-6 space-y-6" >
58+ < div className = "p-6 space-y-6 min-w-0 " >
5959 { /* Status & Risk Section */ }
60- < div className = "grid grid-cols-2 gap-4" >
61- < div className = "space-y-2" >
60+ < div className = "grid grid-cols-2 gap-4 min-w-0 " >
61+ < div className = "space-y-2 min-w-0 " >
6262 < p className = "text-sm text-muted-foreground" > Status</ p >
6363 < div className = "flex items-center gap-2" >
6464 < StatusBadge status = { log . status } />
@@ -100,10 +100,10 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
100100 < Phone className = "h-4 w-4 text-muted-foreground" />
101101 Contact Information
102102 </ h3 >
103- < div className = "grid grid-cols-2 gap-4 text-sm" >
104- < div >
103+ < div className = "grid grid-cols-2 gap-4 text-sm min-w-0 " >
104+ < div className = "min-w-0" >
105105 < p className = "text-muted-foreground" > Phone Number</ p >
106- < p className = "font-mono font-medium" > { log . phone } </ p >
106+ < p className = "font-mono font-medium truncate " > { log . phone } </ p >
107107 </ div >
108108 < div >
109109 < p className = "text-muted-foreground" > Channel</ p >
@@ -129,31 +129,31 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
129129 < Building2 className = "h-4 w-4 text-muted-foreground" />
130130 Phone Metadata
131131 </ h3 >
132- < div className = "grid grid-cols-2 gap-4 text-sm" >
132+ < div className = "grid grid-cols-2 gap-4 text-sm min-w-0 " >
133133 { log . phone_number_type && (
134- < div >
134+ < div className = "min-w-0" >
135135 < p className = "text-muted-foreground" > Number Type</ p >
136136 < Badge variant = "outline" className = "mt-1 capitalize" >
137137 { log . phone_number_type . toLowerCase ( ) . replace ( '_' , ' ' ) }
138138 </ Badge >
139139 </ div >
140140 ) }
141141 { log . phone_carrier && (
142- < div >
142+ < div className = "min-w-0" >
143143 < p className = "text-muted-foreground" > Carrier</ p >
144- < p className = "font-medium" > { log . phone_carrier } </ p >
144+ < p className = "font-medium truncate " > { log . phone_carrier } </ p >
145145 </ div >
146146 ) }
147147 { log . phone_geocoding && (
148- < div >
148+ < div className = "min-w-0" >
149149 < p className = "text-muted-foreground" > Location</ p >
150- < p className = "font-medium" > { log . phone_geocoding } </ p >
150+ < p className = "font-medium truncate " > { log . phone_geocoding } </ p >
151151 </ div >
152152 ) }
153153 { log . phone_timezone && (
154- < div >
154+ < div className = "min-w-0" >
155155 < p className = "text-muted-foreground" > Timezone</ p >
156- < p className = "font-mono text-xs" > { log . phone_timezone } </ p >
156+ < p className = "font-mono text-xs truncate " > { log . phone_timezone } </ p >
157157 </ div >
158158 ) }
159159 </ div >
@@ -169,20 +169,20 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
169169 < MapPin className = "h-4 w-4 text-muted-foreground" />
170170 Location & Network
171171 </ h3 >
172- < div className = "grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm" >
173- < div >
172+ < div className = "grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm min-w-0 " >
173+ < div className = "min-w-0" >
174174 < p className = "text-muted-foreground" > Country</ p >
175175 < p className = "font-medium" > { log . country_code || 'Unknown' } </ p >
176176 </ div >
177- < div >
177+ < div className = "min-w-0" >
178178 < p className = "text-muted-foreground" > IP Address</ p >
179179 < p className = "font-mono text-xs break-all" > { log . ip_address || 'N/A' } </ p >
180180 </ div >
181- < div className = "sm:col-span-2" >
181+ < div className = "sm:col-span-2 min-w-0 " >
182182 < p className = "text-muted-foreground" > IP Subnet</ p >
183183 < p className = "font-mono text-xs break-all" > { log . ip_subnet || 'N/A' } </ p >
184184 </ div >
185- < div >
185+ < div className = "min-w-0" >
186186 < p className = "text-muted-foreground" > ASN</ p >
187187 < p className = "font-mono text-xs" > { log . asn || 'N/A' } </ p >
188188 </ div >
@@ -197,21 +197,21 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
197197 < Clock className = "h-4 w-4 text-muted-foreground" />
198198 Timing
199199 </ h3 >
200- < div className = "space-y-3 text-sm" >
201- < div className = "flex flex-col sm:flex-row sm:justify-between gap-1" >
202- < span className = "text-muted-foreground" > Created</ span >
203- < span className = "font-mono text-xs" > { formatDate ( log . created_at ) } </ span >
200+ < div className = "space-y-3 text-sm min-w-0 " >
201+ < div className = "flex flex-col sm:flex-row sm:justify-between gap-1 min-w-0 " >
202+ < span className = "text-muted-foreground shrink-0 " > Created</ span >
203+ < span className = "font-mono text-xs truncate " > { formatDate ( log . created_at ) } </ span >
204204 </ div >
205205 { log . updated_at && (
206- < div className = "flex flex-col sm:flex-row sm:justify-between gap-1" >
207- < span className = "text-muted-foreground" > Updated</ span >
208- < span className = "font-mono text-xs" > { formatDate ( log . updated_at ) } </ span >
206+ < div className = "flex flex-col sm:flex-row sm:justify-between gap-1 min-w-0 " >
207+ < span className = "text-muted-foreground shrink-0 " > Updated</ span >
208+ < span className = "font-mono text-xs truncate " > { formatDate ( log . updated_at ) } </ span >
209209 </ div >
210210 ) }
211211 { log . expires_at && (
212- < div className = "flex flex-col sm:flex-row sm:justify-between gap-1" >
213- < span className = "text-muted-foreground" > Expires</ span >
214- < span className = "font-mono text-xs" > { formatDate ( log . expires_at ) } </ span >
212+ < div className = "flex flex-col sm:flex-row sm:justify-between gap-1 min-w-0 " >
213+ < span className = "text-muted-foreground shrink-0 " > Expires</ span >
214+ < span className = "font-mono text-xs truncate " > { formatDate ( log . expires_at ) } </ span >
215215 </ div >
216216 ) }
217217 </ div >
@@ -226,28 +226,28 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
226226 < Phone className = "h-4 w-4 text-muted-foreground" />
227227 Call Details
228228 </ h3 >
229- < div className = "space-y-3 text-sm" >
229+ < div className = "space-y-3 text-sm min-w-0 " >
230230 { log . start_time && (
231- < div className = "flex justify-between" >
232- < span className = "text-muted-foreground" > Call Started</ span >
233- < span className = "font-mono" > { formatDate ( log . start_time ) } </ span >
231+ < div className = "flex flex-col sm:flex-row sm: justify-between gap-1 min-w-0 " >
232+ < span className = "text-muted-foreground shrink-0 " > Call Started</ span >
233+ < span className = "font-mono text-xs truncate " > { formatDate ( log . start_time ) } </ span >
234234 </ div >
235235 ) }
236236 { log . answer_time && (
237- < div className = "flex justify-between" >
238- < span className = "text-muted-foreground" > Answered</ span >
239- < span className = "font-mono" > { formatDate ( log . answer_time ) } </ span >
237+ < div className = "flex flex-col sm:flex-row sm: justify-between gap-1 min-w-0 " >
238+ < span className = "text-muted-foreground shrink-0 " > Answered</ span >
239+ < span className = "font-mono text-xs truncate " > { formatDate ( log . answer_time ) } </ span >
240240 </ div >
241241 ) }
242242 { log . end_time && (
243- < div className = "flex justify-between" >
244- < span className = "text-muted-foreground" > Call Ended</ span >
245- < span className = "font-mono" > { formatDate ( log . end_time ) } </ span >
243+ < div className = "flex flex-col sm:flex-row sm: justify-between gap-1 min-w-0 " >
244+ < span className = "text-muted-foreground shrink-0 " > Call Ended</ span >
245+ < span className = "font-mono text-xs truncate " > { formatDate ( log . end_time ) } </ span >
246246 </ div >
247247 ) }
248248 { log . answer_time && log . end_time && (
249- < div className = "flex justify-between" >
250- < span className = "text-muted-foreground" > Duration</ span >
249+ < div className = "flex flex-col sm:flex-row sm: justify-between gap-1 min-w-0 " >
250+ < span className = "text-muted-foreground shrink-0 " > Duration</ span >
251251 < span className = "font-mono font-medium text-primary" >
252252 { ( ( log . end_time - log . answer_time ) / 1000 ) . toFixed ( 1 ) } s
253253 </ span >
@@ -262,26 +262,26 @@ export function LogDetailDrawer({ log, onClose }: LogDetailDrawerProps) {
262262 { log . error_message && (
263263 < >
264264 < Separator />
265- < div className = "space-y-2" >
265+ < div className = "space-y-2 min-w-0 " >
266266 < h3 className = "text-sm font-medium text-destructive flex items-center gap-2" >
267267 < Shield className = "h-4 w-4" />
268268 Error Details
269269 </ h3 >
270- < div className = "p-3 rounded-md bg-destructive/10 border border-destructive/20" >
271- < p className = "text-sm text-destructive font-mono" > { log . error_message } </ p >
270+ < div className = "p-3 rounded-md bg-destructive/10 border border-destructive/20 min-w-0 " >
271+ < p className = "text-sm text-destructive font-mono break-all " > { log . error_message } </ p >
272272 </ div >
273273 </ div >
274274 </ >
275275 ) }
276276
277277 { /* Raw Data */ }
278278 < Separator />
279- < div className = "space-y-2" >
279+ < div className = "space-y-2 min-w-0 " >
280280 < h3 className = "text-sm font-medium flex items-center gap-2" >
281281 < Globe className = "h-4 w-4 text-muted-foreground" />
282282 Raw Data
283283 </ h3 >
284- < pre className = "p-3 rounded-md bg-muted text-xs font-mono overflow-auto max-h-48" >
284+ < pre className = "p-3 rounded-md bg-muted text-xs font-mono overflow-x- auto overflow-y-auto max-h-48 whitespace-pre " >
285285 { JSON . stringify ( log , null , 2 ) }
286286 </ pre >
287287 </ div >
0 commit comments