Add live/paused toggle, env badge, remove topnav search, rename labels
All checks were successful
CI / build (push) Successful in 1m0s
CI / docker (push) Successful in 46s
CI / deploy (push) Successful in 28s

- Add LIVE/PAUSED toggle button that auto-refreshes search results every 5s
- Source environment badge from VITE_ENV_NAME env var (defaults to DEV locally, PRODUCTION in Docker)
- Remove search trigger button from topnav (command palette still available via keyboard)
- Rename "Transaction Explorer" to "Route Explorer" and "Active Now" to "In-Flight"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-03-13 18:54:24 +01:00
parent 868cf84c4e
commit cf804638d7
7 changed files with 47 additions and 60 deletions

View File

@@ -7,9 +7,9 @@ import { ResultsTable } from './ResultsTable';
import styles from './ExecutionExplorer.module.css';
export function ExecutionExplorer() {
const { toSearchRequest, offset, limit, setOffset } = useExecutionSearch();
const { toSearchRequest, offset, limit, setOffset, live, toggleLive } = useExecutionSearch();
const searchRequest = toSearchRequest();
const { data, isLoading, isFetching } = useSearchExecutions(searchRequest);
const { data, isLoading, isFetching } = useSearchExecutions(searchRequest, live);
const { data: stats } = useExecutionStats();
const { data: timeseries } = useStatsTimeseries(
searchRequest.timeFrom ?? undefined,
@@ -39,13 +39,13 @@ export function ExecutionExplorer() {
{/* Page Header */}
<div className={`${styles.pageHeader} animate-in`}>
<div>
<h1>Transaction Explorer</h1>
<h1>Route Explorer</h1>
<div className={styles.subtitle}>Search and analyze route executions</div>
</div>
<div className={styles.liveIndicator}>
<button className={`${styles.liveToggle} ${live ? styles.liveOn : styles.liveOff}`} onClick={toggleLive}>
<span className={styles.liveDot} />
LIVE
</div>
{live ? 'LIVE' : 'PAUSED'}
</button>
</div>
{/* Stats Bar */}
@@ -54,7 +54,7 @@ export function ExecutionExplorer() {
<StatCard label="Avg Duration" value={`${avgDuration}ms`} accent="cyan" sparkData={sparkAvgDuration} />
<StatCard label="Failed (page)" value={failedCount.toString()} accent="rose" sparkData={sparkFailed} />
<StatCard label="P99 Latency" value={stats ? `${stats.p99LatencyMs}ms` : '--'} accent="green" change="last hour" sparkData={sparkP99} />
<StatCard label="Active Now" value={stats ? stats.activeCount.toString() : '--'} accent="blue" change="running executions" sparkData={sparkActive} />
<StatCard label="In-Flight" value={stats ? stats.activeCount.toString() : '--'} accent="blue" change="running executions" sparkData={sparkActive} />
</div>
{/* Filters */}