@@ -78,7 +78,9 @@ export const SessionViewer = () => {
78
78
const url = URL . createObjectURL ( blob ) ;
79
79
const link = document . createElement ( "a" ) ;
80
80
link . href = url ;
81
- link . download = `session-${ sessionId } -logs.txt` ;
81
+ if ( ! sessionInfo ) return ;
82
+ const timestamp = moment ( sessionInfo . createdAt ) . format ( "YY-MM-DD_HH-mm" ) ;
83
+ link . download = `${ timestamp } _${ sessionId } .log` ;
82
84
document . body . appendChild ( link ) ;
83
85
link . click ( ) ;
84
86
document . body . removeChild ( link ) ;
@@ -208,7 +210,7 @@ export const SessionViewer = () => {
208
210
return isLoading && isInitialLoad ? (
209
211
< Loader size = "xl" />
210
212
) : (
211
- < Frame className = "overflow-y-auto overflow-x-hidden rounded-l-none pb-3 font-fira-code" >
213
+ < Frame className = "pb-3 overflow-x-hidden overflow-y-auto rounded-l-none font-fira-code" >
212
214
< div className = "flex justify-between" >
213
215
< div className = "flex flex-col gap-0.5 leading-6" >
214
216
< div className = "flex items-center gap-4" >
@@ -224,7 +226,7 @@ export const SessionViewer = () => {
224
226
< div className = "w-32 text-gray-1550" > { t ( "entrypoint" ) } </ div >
225
227
< div className = "inline" >
226
228
< div className = "inline" > { sessionInfo . entrypoint . path } </ div >
227
- < IconSvg className = "mx-2 inline fill-white" size = "sm" src = { ArrowRightIcon } />
229
+ < IconSvg className = "inline mx-2 fill-white" size = "sm" src = { ArrowRightIcon } />
228
230
< div className = "inline" > { sessionInfo . entrypoint . name } </ div >
229
231
</ div >
230
232
</ div >
@@ -271,7 +273,7 @@ export const SessionViewer = () => {
271
273
</ div >
272
274
</ div >
273
275
274
- < div className = "flex flex-1 items-start justify-between" >
276
+ < div className = "flex items-start justify-between flex-1 " >
275
277
< div className = "flex-1" >
276
278
{ sessionInfo . inputs ? (
277
279
< div className = "mt-3 max-w-[80%] pb-3.5" >
@@ -292,15 +294,15 @@ export const SessionViewer = () => {
292
294
) : null }
293
295
</ div >
294
296
295
- < div className = "mt-3 flex " >
297
+ < div className = "flex mt-3" >
296
298
< Tooltip content = { t ( "copy" ) } position = "bottom" >
297
299
< Button
298
- className = "group py-2 pl-2 text-white disabled:cursor-not-allowed disabled:opacity-50"
300
+ className = "py-2 pl-2 text-white group disabled:cursor-not-allowed disabled:opacity-50"
299
301
disabled = { isCopyingLogs }
300
302
onClick = { copySessionLogs }
301
303
>
302
304
{ isCopyingLogs ? (
303
- < div className = "flex size-4 items-center" >
305
+ < div className = "flex items-center size-4 " >
304
306
< Loader size = "sm" />
305
307
</ div >
306
308
) : (
@@ -310,12 +312,12 @@ export const SessionViewer = () => {
310
312
</ Tooltip >
311
313
< Tooltip content = { t ( "download" ) } position = "bottom" >
312
314
< Button
313
- className = "group py-2 pl-2 text-white disabled:cursor-not-allowed disabled:opacity-50"
315
+ className = "py-2 pl-2 text-white group disabled:cursor-not-allowed disabled:opacity-50"
314
316
disabled = { isDownloadingLogs }
315
317
onClick = { downloadSessionLogs }
316
318
>
317
319
{ isDownloadingLogs ? (
318
- < div className = "flex size-4 items-center" >
320
+ < div className = "flex items-center size-4 " >
319
321
< Loader size = "sm" />
320
322
</ div >
321
323
) : (
@@ -362,7 +364,7 @@ export const SessionViewer = () => {
362
364
) : null }
363
365
364
366
< div className = "flex items-center justify-between" >
365
- < div className = "scrollbar my-5 flex items-center gap-2 overflow-x-auto overflow-y-hidden whitespace-nowrap uppercase xl:gap-4 2xl:gap-6" >
367
+ < div className = "flex items-center gap-2 my-5 overflow-x-auto overflow-y-hidden uppercase scrollbar whitespace-nowrap xl:gap-4 2xl:gap-6" >
366
368
{ sessionTabs . map ( ( singleTab ) => (
367
369
< Tab
368
370
activeTab = { activeTab }
0 commit comments