Workers P3: Prüfstand um Freigabe, Interessenten-Panel, Anhalten-Rückfrage und Handy erweitert
Echte Seite WorkersPage im Prüfstand (Austausch-Module für Anmeldung, Mitarbeiterliste und Sitzungs-JWT), Skript-API mit Pult, Aktionen und Interessent samt Schaltern für 409, 400, Ausfall und Leerzustand, vier neue Szenarien (Freigabe, Interessent, Anhalten, Handy), jedes Szenario läuft für sich, und der Szenario Desktop bestätigt jetzt die Rückfrage vor dem Anhalten. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
686db61e1c
commit
2ed2201b22
9 files changed
+847
-20
No files matched your search
@@ -4,6 +4,9 @@
|
||||
// ?fault=none|down|session|hang schaltet zwischen Board und Skript-API den echten API-Client (createWorkersApi) mit einer Fetch-Weiche
|
||||
// (scripted-fetch.js): window.__wk.control.fault lässt sich zur Laufzeit auf null | 'down' | 'session' | 'hang' setzen (Ausfall-Szenario).
|
||||
// Ohne den Parameter bekommt das Board die Skript-API direkt (Szenarien A bis E).
|
||||
// ?page=1 zeigt statt des Boards die echte Seite WorkersPage (Reiter Hochhaus und Freigabe, PultList, ProspectPanel); AuthContext,
|
||||
// useEmployees und workersClient sind dort durch stub-*.js ersetzt (build.mjs). ?tab=freigabe öffnet den Reiter gleich (Deep-Link).
|
||||
// Mit ?page=1&fault=none läuft die Seite über den echten API-Client und die Fetch-Weiche (Pult, Aktionen, Interessent).
|
||||
import { StrictMode, createRef } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import { MemoryRouter } from 'react-router-dom'
|
||||
@@ -11,9 +14,11 @@ import '../../src/styles/global.css'
|
||||
import '../../src/styles/workers.css'
|
||||
import PageHeader from '../../src/components/ui/PageHeader'
|
||||
import WorkersBoard from '../../src/components/workers/WorkersBoard'
|
||||
import WorkersPage from '../../src/pages/WorkersPage'
|
||||
import { createWorkersApi } from '../../src/lib/workersApi.js'
|
||||
import { createScriptedApi } from './scripted-api.js'
|
||||
import { createScriptedFetch } from './scripted-fetch.js'
|
||||
import { holder } from './harness-bridge.js'
|
||||
|
||||
const params = new URLSearchParams(window.location.search)
|
||||
const scripted = createScriptedApi({ now: () => performance.now(), base: Date.now(), halted: params.get('halted') === '1' })
|
||||
@@ -32,18 +37,27 @@ const api = fault === null
|
||||
timeoutMs: 1500,
|
||||
})
|
||||
window.__wk = { stage, api: scripted, control }
|
||||
holder.api = api
|
||||
|
||||
const pageMode = params.get('page') === '1'
|
||||
const tab = params.get('tab')
|
||||
const entries = [pageMode && tab ? `/hustler?tab=${encodeURIComponent(tab)}` : '/hustler']
|
||||
|
||||
createRoot(document.getElementById('root')).render(
|
||||
<StrictMode>
|
||||
<MemoryRouter>
|
||||
<MemoryRouter initialEntries={entries}>
|
||||
<div className="shell">
|
||||
<div className="sidebar" aria-hidden="true" />
|
||||
<div className="main">
|
||||
<main id="inhalt">
|
||||
<div className="page wk-page">
|
||||
<PageHeader title="Hustler" subtitle="Die Nachtschicht deiner Claude-Armee" />
|
||||
<WorkersBoard api={api} isAdmin stageRef={stage} />
|
||||
</div>
|
||||
{pageMode ? (
|
||||
<WorkersPage />
|
||||
) : (
|
||||
<div className="page wk-page">
|
||||
<PageHeader title="Hustler" subtitle="Die Nachtschicht deiner Claude-Armee" />
|
||||
<WorkersBoard api={api} isAdmin stageRef={stage} />
|
||||
</div>
|
||||
)}
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user