Fix mobile dashboard status bar flow
All checks were successful
deploy / deploy (push) Successful in 33s

Proof: Mobile dashboard status bar now uses static document flow below 720px; static UI regression test, dashboard build, and full npm test pass.

Assumptions: The viewport-covering mobile issue is caused by the sticky status bar occupying too much of the small screen while pinned.

Still fake: Venue-native terminal fill events, fee attribution, realized per-trade PnL, and full inventory-skew strategy controls remain incomplete.
This commit is contained in:
philipp 2026-04-12 11:48:34 +02:00
parent 9eb1f7b80e
commit 12f87943e3
2 changed files with 11 additions and 1 deletions

View file

@ -522,7 +522,9 @@ table.lifecycle-table th:nth-child(5) {
} }
.status-bar { .status-bar {
top: 8px; position: static;
top: auto;
z-index: auto;
border-radius: 20px; border-radius: 20px;
} }

View file

@ -4,6 +4,7 @@ import { readFileSync } from 'node:fs';
const strategySource = readFileSync(new URL('../src/operator-dashboard/static/pages/StrategyPage.jsx', import.meta.url), 'utf8'); const strategySource = readFileSync(new URL('../src/operator-dashboard/static/pages/StrategyPage.jsx', import.meta.url), 'utf8');
const fundsSource = readFileSync(new URL('../src/operator-dashboard/static/pages/FundsPage.jsx', import.meta.url), 'utf8'); const fundsSource = readFileSync(new URL('../src/operator-dashboard/static/pages/FundsPage.jsx', import.meta.url), 'utf8');
const stylesSource = readFileSync(new URL('../src/operator-dashboard/static/styles.css', import.meta.url), 'utf8');
test('strategy page owns consolidated quote lifecycle and successful trade tables', () => { test('strategy page owns consolidated quote lifecycle and successful trade tables', () => {
assert.match(strategySource, /Quote lifecycle/); assert.match(strategySource, /Quote lifecycle/);
@ -21,3 +22,10 @@ test('funds page no longer renders duplicate quote and submission tables', () =>
assert.doesNotMatch(fundsSource, /Submitted quote responses/); assert.doesNotMatch(fundsSource, /Submitted quote responses/);
assert.doesNotMatch(fundsSource, /Durable ledger/); assert.doesNotMatch(fundsSource, /Durable ledger/);
}); });
test('mobile status bar uses normal document flow instead of sticky viewport positioning', () => {
assert.match(
stylesSource,
/@media \(max-width: 720px\)[\s\S]*?\.status-bar \{[\s\S]*?position: static;[\s\S]*?top: auto;[\s\S]*?z-index: auto;[\s\S]*?\}/,
);
});