#160: Plugin-Block - Bearbeiten-Knopf nach Moduswechsel wieder da #161
No reviewers
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#161
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix-160-plugin-block-editable"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #160.
Bug (Prod v0.10.0, von Stefan am ChordPro-Block gemeldet): Im Edit-Modus der Seite blieb jeder Plugin-Block im Anzeigemodus - die Leiste zeigte nur den Plugin-Namen, kein Bearbeiten-Knopf, kein Lade-Status.
Ursache: Die NodeView las editor.isEditable nur beim Mount. Die Seite mountet immer im Lesemodus; der Moduswechsel laeuft ueber setEditable(), das in TipTap nur ein update-Event emittiert und keine Transaction - React-NodeViews rendern dabei nie neu (geprueft in @tiptap/react 3.27.1). Betroffen: alle Block-Plugins (ChordPro, Mermaid, Excalidraw, draw.io).
Fix: useEditorEditable abonniert das update-Event des Editors und liest isEditable reaktiv. Zusatz-Guard: verliert die Seite die Editierbarkeit, waehrend die Editier-UI des Plugins offen ist, faellt der Block auf render zurueck (der Lesemodus blendet die Leiste aus - es gaebe sonst keinen Weg mehr heraus). Damit stimmt auch die setData-Schreibrecht-Pruefung wieder.
Tests: Neuer Regressionstest im plugin-blocks-Pack (Block existiert bereits, Seite laedt im Lesemodus, Moduswechsel muss den Knopf zeigen; Rueckweg mitgeprueft). Ohne Fix reproduzierbar rot, mit Fix gruen. Lokal gruen: plugin-blocks (5), plugins+mermaid (6), Web-Unit (63), typecheck, lint. Die bisherigen Specs fuegten Bloecke immer erst nach dem Moduswechsel ein und konnten den Fall nicht sehen.
Keine Backend-/DB-Aenderung.