feat(quick-260923-ad9): Reiter per Ziehen umsortieren - Task 4
dashboard-tabs.tsx: Ziehen ueber Pointer-Ereignisse (Muster xframe-config-form.tsx, D-05 - keine neue Abhaengigkeit). Schwelle 4 px waagerechte Auslenkung trennt Klick von Ziehen; darueber wird der Zeiger eingefangen (jsdom-Schutzhuelle), die Leiste zeigt die Vorschau-Reihenfolge (computeReorderedIds, Einfuegen vor dem ersten Nachbarn mit Mittelpunkt rechts vom Zeiger), beim Loslassen geht die VOLLSTAENDIGE Kennungsliste an onReorder. Abbruch des Zeigers verwirft die Vorschau ohne zu senden. Ein hasDraggedRef-Merker unterdrueckt den Klick, der im echten Browser nach einem Ziehen folgt. Ziehen ist IMMER moeglich, nicht nur im Bearbeitungsmodus (D-09) - ein Hinweistext erklaert, dass der erste Reiter beim Oeffnen geladen wird. dashboard-store.ts: reorderDashboards() setzt die neue Reihenfolge SOFORT optimistisch, sendet sie und stellt bei einem Fehler die vorherige Reihenfolge wieder her; der aktive Reiter bleibt aktiv. dashboard-tabs.test.tsx: 21 Tests (12 alte aus Task 3 + 9 neue fuer jeden Punkt des Verhaltensblocks). getBoundingClientRect wird je Reiter-Wrapper ueber data-tab-index gestubbt (Reiter i belegt 100i..100i+100 - jsdom liefert keine echten Masse). dashboard-store.test.ts: 17 Tests (15 alte + 2 neue fuer Optimismus/Ruecknahme). Messages: widgets.tabs.dragHint war bereits in Task 3 eingetragen (vorausschauend) - in diesem Task keine weitere Aenderung an de.json/en.json noetig. Gemessene Abweichung von der Plan-Erwartung (kein Rule-1/2/3-Fall, reine Zahlendifferenz): `grep -c "react-grid-layout|dnd|sortable" apps/web/package.json` liefert 2 statt der im Plan erwarteten 1 - der zweite Treffer ist `@types/react-grid-layout`, bereits vor diesem Task vorhanden (siehe `git diff --stat apps/web/package.json`: keine Aenderung in keinem der vier Tasks). D-05 (keine neue Zieh-Abhaengigkeit) ist damit weiterhin erfuellt, nur an der leeren package.json-Diff nachgewiesen statt an der im Plan vorausgesagten Zahl. Ebenso liefert `pnpm --filter @tessera/web test` 82 statt der erwarteten 83 Dateien - Task 4 fuegt (siehe files_modified oben) keine neue Testdatei hinzu, Task 3 hatte die Dateizahl bereits auf 82 gebracht. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -42,6 +42,7 @@ const mockStore = {
|
||||
createDashboard: vi.fn(),
|
||||
renameDashboard: vi.fn(),
|
||||
deleteDashboard: vi.fn(),
|
||||
reorderDashboards: vi.fn(),
|
||||
};
|
||||
|
||||
vi.mock('@/lib/stores/dashboard-store', () => ({
|
||||
|
||||
Reference in New Issue
Block a user