@@ -32,9 +32,11 @@ import { LogsTaskFilter } from "~/components/logs/LogsTaskFilter";
3232import { LogsRunIdFilter } from "~/components/logs/LogsRunIdFilter" ;
3333import { TimeFilter } from "~/components/runs/v3/SharedFilters" ;
3434import {
35+ RESIZABLE_PANEL_ANIMATION ,
3536 ResizableHandle ,
3637 ResizablePanel ,
3738 ResizablePanelGroup ,
39+ collapsibleHandleClassName ,
3840} from "~/components/primitives/Resizable" ;
3941import { Button } from "~/components/primitives/Buttons" ;
4042import { FEATURE_FLAG , validateFeatureFlagValue } from "~/v3/featureFlags" ;
@@ -148,7 +150,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => {
148150 from,
149151 to,
150152 defaultPeriod : "1h" ,
151- retentionLimitDays
153+ retentionLimitDays,
152154 } )
153155 . catch ( ( error ) => {
154156 if ( error instanceof ServiceValidationError ) {
@@ -165,8 +167,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => {
165167} ;
166168
167169export default function Page ( ) {
168- const { data, defaultPeriod, retentionLimitDays } =
169- useTypedLoaderData < typeof loader > ( ) ;
170+ const { data, defaultPeriod, retentionLimitDays } = useTypedLoaderData < typeof loader > ( ) ;
170171
171172 return (
172173 < PageContainer >
@@ -192,10 +193,7 @@ export default function Page() {
192193 resolve = { data }
193194 errorElement = {
194195 < div className = "grid h-full max-h-full grid-rows-[2.5rem_auto_1fr] overflow-hidden" >
195- < FiltersBar
196- defaultPeriod = { defaultPeriod }
197- retentionLimitDays = { retentionLimitDays }
198- />
196+ < FiltersBar defaultPeriod = { defaultPeriod } retentionLimitDays = { retentionLimitDays } />
199197 < div className = "flex items-center justify-center px-3 py-12" >
200198 < Callout variant = "error" className = "max-w-fit" >
201199 Unable to load your logs. Please refresh the page or try again in a moment.
@@ -228,10 +226,7 @@ export default function Page() {
228226 defaultPeriod = { defaultPeriod }
229227 retentionLimitDays = { retentionLimitDays }
230228 />
231- < LogsList
232- list = { result }
233- defaultPeriod = { defaultPeriod }
234- />
229+ < LogsList list = { result } defaultPeriod = { defaultPeriod } />
235230 </ div >
236231 ) ;
237232 } }
@@ -464,11 +459,21 @@ function LogsList({
464459 onLogSelect = { handleLogSelect }
465460 />
466461 </ ResizablePanel >
467- { /* Side panel for log details */ }
468- { selectedLogId && (
469- < >
470- < ResizableHandle id = "logs-handle" />
471- < ResizablePanel id = "log-detail" min = "300px" default = "430px" max = "600px" isStaticAtRest >
462+ < ResizableHandle id = "logs-handle" className = { collapsibleHandleClassName ( ! ! selectedLogId ) } />
463+ < ResizablePanel
464+ id = "log-detail"
465+ default = "430px"
466+ min = "430px"
467+ max = "600px"
468+ className = "overflow-hidden"
469+ collapsible
470+ collapsed = { ! selectedLogId }
471+ onCollapseChange = { ( ) => { } }
472+ collapsedSize = "0px"
473+ collapseAnimation = { RESIZABLE_PANEL_ANIMATION }
474+ >
475+ < div className = "h-full" style = { { minWidth : 430 } } >
476+ { selectedLogId && (
472477 < Suspense
473478 fallback = {
474479 < div className = "flex h-full items-center justify-center" >
@@ -483,9 +488,9 @@ function LogsList({
483488 searchTerm = { list . searchTerm }
484489 />
485490 </ Suspense >
486- </ ResizablePanel >
487- </ >
488- ) }
491+ ) }
492+ </ div >
493+ </ ResizablePanel >
489494 </ ResizablePanelGroup >
490495 ) ;
491496}
0 commit comments