Skip to content

Journaltext försvinner när man byter flik utan att klicka Spara/Skicka #217

Description

@annikaholmqvist94

När en användare fyller i text i journalrelaterade fält i ärendevyn och sedan byter flik (t.ex. via sidomenyn) utan att aktivt trycka på Spara/Skicka/Slutför, försvinner all
text. Inget meddelande visas, och ingen draft bevaras.

Steg för att reproducera

  1. Logga in som Vet (erik@klinik.se / password)
  2. Öppna ett ärende i "Mina ärenden"
  3. Skriv text i fältet "Journalförda meddelanden" (eller "Redigera beskrivning" / klinisk notering i stäng-modalen)
  4. Klicka på en annan vy i sidomenyn (t.ex. "Mina ärenden") utan att klicka Skicka/Spara
  5. Gå tillbaka till samma ärende → fältet är tomt, ingen text är sparad till backend

Förväntat beteende

Texten ska antingen sparas automatiskt, bevaras som draft, eller så ska användaren varnas innan navigering.

Faktiskt beteende

Texten kastas tyst när CaseDetail unmount:as.

Rotorsak

Texten ligger i lokal useState i frontend/src/pages/CaseDetail.jsx och skrivs bara till backend vid explicit knapptryck. När currentView ändras i App.jsx unmount:as komponenten
och staten förstörs.
Unmount sker i frontend/src/App.jsx:162–216 när currentView byter värde.

Förslag på lösning

  1. Auto-spara onBlur — skicka till API när fältet tappar fokus (primär lösning, enkel UX).
  2. Save-on-unmount — useEffect-cleanup som flushar icke-tom text innan komponenten försvinner (safety net).
  3. (Alternativt) localStorage-draft — bevara vid refresh, men löser inte backend-persistens.

Acceptanskriterier

  • Text i "Journalförda meddelanden" försvinner inte vid flikbyte
  • Text i klinisk notering-modalen försvinner inte vid flikbyte
  • Text i redigerad beskrivning försvinner inte vid flikbyte
  • Manuell Skicka/Spara fungerar fortfarande som idag
  • Ingen dubblering av kommentarer vid både blur och knapptryck

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions