+
+
+ Scenario History
+ }
+ onClick={() => requestPage()}
+ disabled={displayLoading}
+ data-testid="scenario-history-refresh"
+ >
+ Refresh
+
+
+
+
+ {hasFilters && (
+ }
+ onClick={() => onFiltersChange({ ...DEFAULT_SCENARIO_HISTORY_FILTERS })}
+ >
+ Reset
+
+ )}
+ setFilter('scenarioNames', values)}
+ testId="scenario-filter"
+ className={styles.filterDropdown}
+ />
+ setFilter('statuses', values as ScenarioRunState[])}
+ testId="scenario-status-filter"
+ className={styles.filterDropdown}
+ />
+ setFilter('operator', values)}
+ testId="scenario-operator-filter"
+ className={styles.filterDropdown}
+ />
+ setFilter('operation', values)}
+ testId="scenario-operation-filter"
+ className={styles.filterDropdown}
+ />
+ setFilter('otherLabels', values)}
+ testId="scenario-label-filter"
+ className={styles.filterDropdown}
+ />
+
+ {optionsError && (
+
+ {optionsError}
+
+ )}
+
+
+
+ {displayLoading ? (
+
+ ) : error ? (
+
+ {error}
+ } onClick={() => requestPage()}>
+ Retry
+
+
+ ) : runs.length === 0 ? (
+
+ No scenario runs found
+ {hasFilters ? 'Try adjusting your filters.' : 'Launch a scenario to see its progress and results here.'}
+ {!hasFilters && (
+ } onClick={() => onNavigate('scenarios')}>
+ Browse scenarios
+
+ )}
+
+ ) : (
+
+ )}
+
+
+ {!displayLoading && !error && runs.length > 0 && (
+
+ }
+ disabled={page === 0}
+ onClick={() => {
+ setPage(0)
+ requestPage()
+ }}
+ >
+ First
+
+ Page {page + 1}
+ }
+ iconPosition="after"
+ disabled={!hasMore || !nextCursor}
+ onClick={() => {
+ if (!nextCursor) return
+ setPage((current) => current + 1)
+ requestPage(nextCursor)
+ }}
+ >
+ Next
+
+
+ )}
+
+ )
+}
+
+interface ScenarioHistoryTableProps {
+ runs: ScenarioRunSummary[]
+ onOpenRun: (scenarioResultId: string) => void
+}
+
+function ScenarioHistoryTable({ runs, onOpenRun }: ScenarioHistoryTableProps) {
+ const styles = useScenarioHistoryStyles()
+ return (
+