Benutzereinstellungen: E-Mail-Signatur wird nicht angezeigt. #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Wenn ich in die Benutzereinstellungen gehe, wird die E-Mail-Signatur nicht angezeigt, obwohl eine gespeichert ist und mir in der verarbeitenden Ansicht beim E-Mail-Senden angezeigt wird.
Ursache
Race Condition zwischen API-Aufruf und TipTap-Initialisierung.
In
MailSettingsTab(UserSettingsPage.tsx) lädt einuseEffectbeim Mount sofort die Einstellungen per API. Gleichzeitig rendertWysiwygEditorsolangenull, bis TipTap fertig initialisiert ist (if (!editor) return null). DasetLoading(false)erst im.finally()-Block ausgeführt wird, wurdeeditorRef.current?.setContent()im.then()-Block aufgerufen – zu einem Zeitpunkt, an dem der Editor noch gar nicht gemountet war. Der Aufruf scheiterte lautlos via?..Im E-Mail-Dialog (
InboxDetailPage) tritt das Problem nicht auf, weil der Editor dort erst bei einer Benutzeraktion (Modal öffnen) eingeblendet wird und TipTap bis dahin bereits initialisiert ist.Lösung
WysiwygEditor.tsx: Neue PropinitialContent?: stringhinzugefügt. TipTap wird direkt mit dem übergebenen HTML-Inhalt initialisiert.UserSettingsPage.tsx: Signatur wird nun in State gespeichert (setSignatureHtml) statt über den Ref gesetzt. Da die Komponente während des Ladensnullzurückgibt, mountet der Editor erst nach Abschluss des API-Calls – und erhält die Signatur dann sauber alsinitialContent-Prop.