feat: add task drag and drop
This commit is contained in:
@ -23,14 +23,15 @@ byggprocess.
|
||||
|
||||
### Frontend
|
||||
|
||||
Frontend finns i `frontend/` och använder React 19, TypeScript, Vite och pnpm.
|
||||
Den ansvarar för:
|
||||
Frontend finns i `frontend/` och använder React 19, TypeScript, Vite, pnpm och
|
||||
dnd-kit-ekosystemets aktuella React-adapter. Den ansvarar för:
|
||||
|
||||
- hämtning och presentation av användare och uppgifter;
|
||||
- lokalt val av aktiv användare;
|
||||
- formulär för att skapa användare och uppgifter;
|
||||
- val och visning av ansvarig användare på uppgifter;
|
||||
- serverbekräftade statusändringar genom knappar på uppgiftskorten;
|
||||
- optimistiska statusflyttar genom drag-and-drop mellan brädans kolumner;
|
||||
- klientnära validering och begripliga felmeddelanden;
|
||||
- uppgiftsbrädan med kolumnerna Väntande, Pågående och Klart.
|
||||
|
||||
@ -148,7 +149,12 @@ otillåtna tilldelningsändringar till `409 Conflict`.
|
||||
Frontend skiljer mellan fel vid hämtning och skapande. Hämtfel kan
|
||||
återförsökas. Formulärfel visas nära formuläret och inmatningen behålls vid
|
||||
misslyckade API-anrop. Status- och tilldelningsfel visas lokalt på berört kort;
|
||||
kortet uppdateras först med backendens bekräftade respons.
|
||||
statusknappar och tilldelning uppdateras först med backendens bekräftade
|
||||
respons. Drag-and-drop flyttar kortet optimistiskt men återställer hela den
|
||||
tidigare uppgiften vid fel. Vid framgång ersätts alltid det lokala värdet med
|
||||
backendens fullständiga respons. Status- och tilldelningsanrop delar låsning per
|
||||
task-id, så det berörda kortet blockeras utan att resten av brädan låses.
|
||||
Drag-and-drop återanvänder backendens befintliga status-API oförändrat.
|
||||
|
||||
### Teststrategi
|
||||
|
||||
@ -160,7 +166,9 @@ Backend har JUnit 5-tester:
|
||||
|
||||
Frontend använder Vitest, jsdom och React Testing Library. `fetch` och
|
||||
`localStorage` ersätts i testerna, så frontendtesterna kräver inte en körande
|
||||
backend. Produktionsbygget kör TypeScript-kompilering följt av Vite.
|
||||
backend. Drag-and-drop-adaptern översätter bibliotekshändelser till task-id och
|
||||
status, så stateflöden kan testas utan att simulera fysisk layout i jsdom.
|
||||
Produktionsbygget kör TypeScript-kompilering följt av Vite.
|
||||
|
||||
### Produktionsdeployment
|
||||
|
||||
|
||||
Reference in New Issue
Block a user