diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css index 3a715933..aa60fc27 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css +++ b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css @@ -49,6 +49,12 @@ font-size: 12px; } +.replicaLabel { + display: inline-flex; + align-items: center; + gap: 8px; +} + .emptyState { padding: 16px; color: var(--text-muted); diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/LogsPanel.tsx b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/LogsPanel.tsx index c8256cdf..d54d3271 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/LogsPanel.tsx +++ b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/LogsPanel.tsx @@ -1,4 +1,5 @@ import { useMemo, useState } from 'react'; +import { Select } from '@cameleer/design-system'; import { useInfiniteApplicationLogs } from '../../../../api/queries/logs'; import type { Deployment } from '../../../../api/queries/admin/apps'; import { instanceIdsFor } from './instance-id'; @@ -28,23 +29,24 @@ export function LogsPanel({ deployment, appSlug, envSlug }: Props) { isAtTop: true, }); + const replicaOptions = [ + { value: 'all', label: `all (${deployment.replicaStates.length})` }, + ...deployment.replicaStates.map((_, i) => ({ value: String(i), label: String(i) })), + ]; + return (