Demoklart: demoärende, dashboard-filter, publik delningssida, utskrift
- Demoärende med ett klick: komplett vibrationsärende (Volvo XC60) med 1 tim 35 min historik — besvarade symptomfrågor, fyra hjulfoton, mätvärden, provkörning, inaktivitetsförklaring, överlämning mellan två tekniker och en hypotes. Testat: tidsordning, arbetstid, kvar- varande kontroller så guiden kan fortsätta live i demon. - Dashboard enligt direktivet: räknare och filter Alla/Pågående/Klara. - Publik delningssida /felsokning/delad/:kod som läser via hamta_delat_arende utan inloggning och pollar för liveuppdatering; delad vykomponent med interna förhandsvisningen; Kopiera delningslänk i rapportfliken. - Utskriftsvänlig kundrapport: svart på vitt vid utskrift, knappar och fält döljs automatiskt. - Demomanus i docs/DEMO.md med steg-för-steg-flöde och tabell över demoläge kontra produktion. Verifierat: 21 vitest-tester gröna, produktionsbygge ok, Playwright- röktest inkl. demoflödet i färsk profil. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
@@ -20,6 +20,8 @@ interface FelsokningState {
|
||||
// Används endast av synken: ersätter listan med den ihopflätade versionen.
|
||||
// Semantiken är fortfarande append-only — flätningen lägger bara till.
|
||||
sammanfoga: (arendeId: string, handelser: LoggPost[]) => void;
|
||||
// Lägger in ett färdigbyggt ärende (demoärende, importerat ärende).
|
||||
laggInArende: (arende: Arende) => void;
|
||||
}
|
||||
|
||||
function nyDelningskod(): string {
|
||||
@@ -83,6 +85,13 @@ export const useFelsokning = create<FelsokningState>()(
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
laggInArende: (arende) => {
|
||||
set((s) => ({
|
||||
arenden: { ...s.arenden, [arende.id]: arende },
|
||||
nastaNummer: Math.max(s.nastaNummer, arende.nummer + 1),
|
||||
}));
|
||||
},
|
||||
}),
|
||||
{ name: "guidad-felsokning" },
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user