Hustler-Stufe: Keller und Bot-Leads erst ab Stufe 6 (Seite, Keller-Etage, Spur-Links, Abruf von /botleads)
WorkersPage: ?tab=botleads (auch mit &bot=) und unbekannte Werte fallen unterhalb von Stufe 6 auf das Hochhaus zurück, BotLeadList wird nie eingehängt; die Weiterleitungen /leads und /workers bleiben. HochhausWelt: die Keller-Etage ist dann ein Knopf wie jede andere (zoomt heran) statt eines Links; Arne bleibt klickbar, die Zahl Bot-Leads in der Kopfzeile bleibt Text. HustlerDialog: Spur-Links in den Keller bleiben Text. workersApi.botleads ruft unterhalb von Stufe 6 nichts ab (kein JWT, keine Anfrage), sondern liefert 404 mit deutschem Satz. Bestehende Keller-Tests laufen ausdrücklich auf Stufe 6; neue Tests prüfen Stufe 1, 3 und 5 (gesperrt) und 6 bis 9 (offen). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5e48fbf264
commit
32f4f1d941
10 files changed
+262
-21
No files matched your search
@@ -5,6 +5,7 @@ import Hochhaus from '../components/workers/hochhaus/Hochhaus'
|
||||
import PultList from '../components/workers/PultList'
|
||||
import { useAuth } from '../context/AuthContext'
|
||||
import { useWorkersFeed } from '../hooks/useWorkersFeed'
|
||||
import { HUSTLER_STUFE, tabErlaubt } from '../lib/hustlerStufe'
|
||||
import { indexWorkers, reduceEvents } from '../lib/workersEvents'
|
||||
import { workersApi } from '../lib/workersClient'
|
||||
import { pickTab } from '../lib/workersView'
|
||||
@@ -23,6 +24,8 @@ import '../styles/hustler/hustler-regie.css'
|
||||
|
||||
// Bildschirme der Seite: das Hochhaus, das Pult (Freigabe von P3) und der Keller (Bot-Leads von P6). Eine Reiterleiste gibt es nicht mehr;
|
||||
// gewechselt wird im Haus (Etage Freigabe, Etage Keller) und über „◂ Hochhaus“ in Pult und Keller.
|
||||
// Stufen-Sperre (lib/hustlerStufe.js, HUSTLER_STUFE): der Keller ist erst ab Stufe 6 ein Bildschirm. Darunter fallen ?tab=botleads (auch mit &bot=) und jeder
|
||||
// andere unbekannte Wert auf das Hochhaus zurück (pickTab nimmt den ersten Reiter), BotLeadList wird nie eingehängt und /api/workers/botleads nie abgerufen.
|
||||
const WORKERS_TABS = [
|
||||
{ id: 'hochhaus', label: 'Hochhaus' },
|
||||
{ id: 'freigabe', label: 'Freigabe' },
|
||||
@@ -39,10 +42,11 @@ const api = workersApi
|
||||
// Die Tabelle liegt nie einen Render hinter dem Schnappschuss zurück (sonst stünden alle Figuren kurz auf „Leerlauf“): sie merkt sich, aus welchem Schnappschuss sie
|
||||
// entstand, und wird im Render neu aus `state` gebaut, sobald der Schnappschuss ein anderer ist. Pause (state.paused) geht an alle drei Bildschirme.
|
||||
// Das Hochhaus bekommt vonTab (der Bildschirm, von dem man zurückkommt) und fokussiert dann die Etage, über die man gegangen war.
|
||||
export default function WorkersPage() {
|
||||
// stufe (Standard HUSTLER_STUFE) ist nur für Tests ein Parameter; die App rendert die Seite ohne und liest die Stufe aus dem Bau.
|
||||
export default function WorkersPage({ stufe = HUSTLER_STUFE }) {
|
||||
const { isAdmin, user } = useAuth()
|
||||
const [params, setParams] = useSearchParams()
|
||||
const active = pickTab(WORKERS_TABS, params.get('tab'))
|
||||
const active = pickTab(WORKERS_TABS.filter((t) => tabErlaubt(t.id, stufe)), params.get('tab'))
|
||||
const bot = params.get('bot') ?? ''
|
||||
const [tabelle, setTabelle] = useState({ von: null, workers: {} }) // Hustler-Tabelle samt dem Schnappschuss, aus dem sie entstand
|
||||
const [verlauf, setVerlauf] = useState({ aktuell: active.id, vorher: null }) // aktueller und vorheriger Bildschirm
|
||||
@@ -82,7 +86,8 @@ export default function WorkersPage() {
|
||||
workers={workers}
|
||||
regieRef={regieRef}
|
||||
vonTab={vonTab}
|
||||
onOpen={(tab) => setParams({ tab })}
|
||||
stufe={stufe}
|
||||
onOpen={(tab) => { if (tabErlaubt(tab, stufe)) setParams({ tab }) }}
|
||||
/>
|
||||
)}
|
||||
{active.id === 'freigabe' && (
|
||||
@@ -92,6 +97,7 @@ export default function WorkersPage() {
|
||||
kpis={state?.kpis}
|
||||
workers={workers}
|
||||
paused={paused}
|
||||
stufe={stufe}
|
||||
onBack={() => setParams({ tab: 'hochhaus' })}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in new issue
Block a user