Add a runs screen: a table, a run in full, and curves side by side

This commit is contained in:
2026-08-25 11:44:13 +02:00
parent 7e422c0047
commit d2951a325e
17 changed files with 1564 additions and 5 deletions
+42
View File
@@ -25,8 +25,10 @@ import { Route as LayoutSecretsRouteImport } from './routes/_layout/secrets'
import { Route as LayoutModulesRouteImport } from './routes/_layout/modules'
import { Route as LayoutAlertsRouteImport } from './routes/_layout/alerts'
import { Route as LayoutAdminRouteImport } from './routes/_layout/admin'
import { Route as LayoutRunsIndexRouteImport } from './routes/_layout/runs/index'
import { Route as LayoutFlowsIndexRouteImport } from './routes/_layout/flows/index'
import { Route as LayoutDashboardsIndexRouteImport } from './routes/_layout/dashboards/index'
import { Route as LayoutRunsIdRouteImport } from './routes/_layout/runs/$id'
import { Route as CanvasFlowsFlowNameRouteImport } from './routes/_canvas/flows/$flowName'
import { Route as CanvasDashboardsNameRouteImport } from './routes/_canvas/dashboards/$name'
@@ -108,6 +110,11 @@ const LayoutAdminRoute = LayoutAdminRouteImport.update({
path: '/admin',
getParentRoute: () => LayoutRoute,
} as any)
const LayoutRunsIndexRoute = LayoutRunsIndexRouteImport.update({
id: '/runs/',
path: '/runs/',
getParentRoute: () => LayoutRoute,
} as any)
const LayoutFlowsIndexRoute = LayoutFlowsIndexRouteImport.update({
id: '/flows/',
path: '/flows/',
@@ -118,6 +125,11 @@ const LayoutDashboardsIndexRoute = LayoutDashboardsIndexRouteImport.update({
path: '/dashboards/',
getParentRoute: () => LayoutRoute,
} as any)
const LayoutRunsIdRoute = LayoutRunsIdRouteImport.update({
id: '/runs/$id',
path: '/runs/$id',
getParentRoute: () => LayoutRoute,
} as any)
const CanvasFlowsFlowNameRoute = CanvasFlowsFlowNameRouteImport.update({
id: '/flows/$flowName',
path: '/flows/$flowName',
@@ -146,8 +158,10 @@ export interface FileRoutesByFullPath {
'/panel/': typeof PanelIndexRoute
'/dashboards/$name': typeof CanvasDashboardsNameRoute
'/flows/$flowName': typeof CanvasFlowsFlowNameRoute
'/runs/$id': typeof LayoutRunsIdRoute
'/dashboards/': typeof LayoutDashboardsIndexRoute
'/flows/': typeof LayoutFlowsIndexRoute
'/runs/': typeof LayoutRunsIndexRoute
}
export interface FileRoutesByTo {
'/': typeof LayoutIndexRoute
@@ -166,8 +180,10 @@ export interface FileRoutesByTo {
'/panel': typeof PanelIndexRoute
'/dashboards/$name': typeof CanvasDashboardsNameRoute
'/flows/$flowName': typeof CanvasFlowsFlowNameRoute
'/runs/$id': typeof LayoutRunsIdRoute
'/dashboards': typeof LayoutDashboardsIndexRoute
'/flows': typeof LayoutFlowsIndexRoute
'/runs': typeof LayoutRunsIndexRoute
}
export interface FileRoutesById {
__root__: typeof rootRouteImport
@@ -189,8 +205,10 @@ export interface FileRoutesById {
'/panel/': typeof PanelIndexRoute
'/_canvas/dashboards/$name': typeof CanvasDashboardsNameRoute
'/_canvas/flows/$flowName': typeof CanvasFlowsFlowNameRoute
'/_layout/runs/$id': typeof LayoutRunsIdRoute
'/_layout/dashboards/': typeof LayoutDashboardsIndexRoute
'/_layout/flows/': typeof LayoutFlowsIndexRoute
'/_layout/runs/': typeof LayoutRunsIndexRoute
}
export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath
@@ -211,8 +229,10 @@ export interface FileRouteTypes {
| '/panel/'
| '/dashboards/$name'
| '/flows/$flowName'
| '/runs/$id'
| '/dashboards/'
| '/flows/'
| '/runs/'
fileRoutesByTo: FileRoutesByTo
to:
| '/'
@@ -231,8 +251,10 @@ export interface FileRouteTypes {
| '/panel'
| '/dashboards/$name'
| '/flows/$flowName'
| '/runs/$id'
| '/dashboards'
| '/flows'
| '/runs'
id:
| '__root__'
| '/_canvas'
@@ -253,8 +275,10 @@ export interface FileRouteTypes {
| '/panel/'
| '/_canvas/dashboards/$name'
| '/_canvas/flows/$flowName'
| '/_layout/runs/$id'
| '/_layout/dashboards/'
| '/_layout/flows/'
| '/_layout/runs/'
fileRoutesById: FileRoutesById
}
export interface RootRouteChildren {
@@ -384,6 +408,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof LayoutAdminRouteImport
parentRoute: typeof LayoutRoute
}
'/_layout/runs/': {
id: '/_layout/runs/'
path: '/runs'
fullPath: '/runs/'
preLoaderRoute: typeof LayoutRunsIndexRouteImport
parentRoute: typeof LayoutRoute
}
'/_layout/flows/': {
id: '/_layout/flows/'
path: '/flows'
@@ -398,6 +429,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof LayoutDashboardsIndexRouteImport
parentRoute: typeof LayoutRoute
}
'/_layout/runs/$id': {
id: '/_layout/runs/$id'
path: '/runs/$id'
fullPath: '/runs/$id'
preLoaderRoute: typeof LayoutRunsIdRouteImport
parentRoute: typeof LayoutRoute
}
'/_canvas/flows/$flowName': {
id: '/_canvas/flows/$flowName'
path: '/flows/$flowName'
@@ -435,8 +473,10 @@ interface LayoutRouteChildren {
LayoutSecretsRoute: typeof LayoutSecretsRoute
LayoutSettingsRoute: typeof LayoutSettingsRoute
LayoutIndexRoute: typeof LayoutIndexRoute
LayoutRunsIdRoute: typeof LayoutRunsIdRoute
LayoutDashboardsIndexRoute: typeof LayoutDashboardsIndexRoute
LayoutFlowsIndexRoute: typeof LayoutFlowsIndexRoute
LayoutRunsIndexRoute: typeof LayoutRunsIndexRoute
}
const LayoutRouteChildren: LayoutRouteChildren = {
@@ -446,8 +486,10 @@ const LayoutRouteChildren: LayoutRouteChildren = {
LayoutSecretsRoute: LayoutSecretsRoute,
LayoutSettingsRoute: LayoutSettingsRoute,
LayoutIndexRoute: LayoutIndexRoute,
LayoutRunsIdRoute: LayoutRunsIdRoute,
LayoutDashboardsIndexRoute: LayoutDashboardsIndexRoute,
LayoutFlowsIndexRoute: LayoutFlowsIndexRoute,
LayoutRunsIndexRoute: LayoutRunsIndexRoute,
}
const LayoutRouteWithChildren =