diff --git a/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx b/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx index c0ae8d2f62..14cdf5a67b 100644 --- a/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx +++ b/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx @@ -56,6 +56,7 @@ import { TaskRunStatusCombo, } from "./TaskRunStatus"; import { useOptimisticLocation } from "~/hooks/useOptimisticLocation"; +import { useSearchParams } from "~/hooks/useSearchParam"; type RunsTableProps = { total: number; @@ -63,9 +64,11 @@ type RunsTableProps = { filters: NextRunListAppliedFilters; showJob?: boolean; runs: NextRunListItem[]; + rootOnlyDefault?: boolean; isLoading?: boolean; allowSelection?: boolean; variant?: TableVariant; + disableAdjacentRows?: boolean; }; export function TaskRunsTable({ @@ -73,6 +76,8 @@ export function TaskRunsTable({ hasFilters, filters, runs, + rootOnlyDefault, + disableAdjacentRows = false, isLoading = false, allowSelection = false, variant = "dimmed", @@ -82,8 +87,12 @@ export function TaskRunsTable({ const checkboxes = useRef<(HTMLInputElement | null)[]>([]); const { has, hasAll, select, deselect, toggle } = useSelectedItems(allowSelection); const { isManagedCloud } = useFeatures(); + const { value } = useSearchParams(); const location = useOptimisticLocation(); - const tableStateParam = encodeURIComponent(location.search ? `${location.search}&rt=1` : "rt=1"); + const rootOnly = value("rootOnly") ? `` : `rootOnly=${rootOnlyDefault}`; + const search = rootOnly ? `${rootOnly}&${location.search}` : location.search; + /** TableState has to be encoded as a separate URI component, so it's merged under one, 'tableState' param */ + const tableStateParam = disableAdjacentRows ? '' : encodeURIComponent(search); const showCompute = isManagedCloud; diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx index 8f80124707..9f8cf278be 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx @@ -298,6 +298,7 @@ function RunsList({ runs={list.runs} isLoading={isLoading} allowSelection + rootOnlyDefault={rootOnlyDefault} /> )} diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx index a11a2a7f9d..f4e663b1b7 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx @@ -318,6 +318,7 @@ export default function Page() { runs={schedule.runs} isLoading={false} variant="bright" + disableAdjacentRows />
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tokens.$waitpointParam/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tokens.$waitpointParam/route.tsx index 263baed23d..48b842d34d 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tokens.$waitpointParam/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tokens.$waitpointParam/route.tsx @@ -126,6 +126,7 @@ export default function Page() { runs={waitpoint.connectedRuns} isLoading={false} variant="bright" + disableAdjacentRows />