Promote: staging -> develop - #891
Merged
Merged
Conversation
## Summary Follow-up to #885: section 79 (insider unlock explainer) inherited the standard `cols-2` test grid, which squeezes the three-image walkthrough into a half-width column — the images stack vertically and the card grows very tall (see the deployed page). Switching the section to the base `.tests` class (an existing single-column grid) lets the explainer run full width with its three images side by side, and the `269-dashboard-insider-unlocked` catalog entry follows below. One attribute change plus an HTML comment explaining the deliberate deviation from the otherwise uniform `cols-2` sections.
…890) ## Was fehlte Support-Tickets aus der RealUnit-App konnten keinen Anhang tragen, während die DFX-App das für beide Wege längst anbietet. Die API kann es ebenfalls seit Langem: `CreateSupportIssueBaseDto` erbt `file` (Base64-Data-URI) und `fileName` von `CreateSupportMessageDto`, und `createMessageInternal` erlaubt ausdrücklich eine Nachricht, die **nur** eine Datei trägt. Gefehlt hat allein die App-Seite. ## Was dieser PR macht - `DfxSupportService` schickt `file`/`fileName` an `POST /v1/support/issue` und `POST /v1/support/issue/{uid}/message` und lässt beide Felder weg, wenn kein Anhang gewählt ist. - Das Ticket-Formular bekommt ein Anhang-Feld, das der vorhandenen Formular-Optik folgt (Abschnittslabel wie darüber, Radius und Rahmen wie das Nachrichtenfeld) und den Anhang wieder entfernbar macht. - Die Chat-Eingabe bekommt einen Anhang-Button samt Vorschauzeile. Ein Bild **ohne** Text zu senden ist erlaubt — genau das, was die API zulässt. - Nachrichten mit Anhang zeigen den Dateinamen; ohne das wäre eine Nachricht ohne Text eine leere Sprechblase. - Bilder kommen über den vorhandenen `ImagePickerSheet` und `XFile.toBase64DataUri()`, also denselben Weg wie die KYC-Uploads. Keine neue Abhängigkeit. ## Verifikation Gegen `dev.api.dfx.swiss`, aus der laufenden App im iOS-Simulator: - Ticket mit Bildanhang → `201`, die Nachricht trägt `fileName`. - Chat-Nachricht **nur mit Datei, ohne Text** → `201`, `message: null` plus `fileName`. Dazu drei Gegenproben direkt an der API, die belegen, dass beide Implementierungsentscheidungen tragen: `file` ohne `fileName` → 400, rohes Base64 statt Data-URI → 500, weder Text noch Datei → 400. Lokal: `flutter analyze` ohne Befund, volle Suite **4754** grün, gescopte Zeilen-Coverage **100,0 %** (6430/6430) gegen einen Floor von 100. ## Bewusst nicht enthalten - **Empfangene Anhänge werden nicht angezeigt oder heruntergeladen.** Sichtbar ist nur der Dateiname. `SupportMessageDto` liefert keine URL; der Download-Endpunkt existiert, das gehört aber in einen eigenen Schritt. - **Nur Bilder, kein PDF.** `image_picker` deckt Bilder ab; PDF bräuchte ein zusätzliches Paket. Die DFX-App erlaubt PDF, die API auch. - **Anhang ohne Text** ist im Chat erlaubt, beim Erstellen eines Tickets weiterhin nicht — dort bleibt ein Text Pflicht. Die API erlaubt beides; das ist eine Produktentscheidung, keine technische Grenze. - Scheitert nach erfolgreichem Senden das Nachladen des Tickets, gilt das Senden als erfolgreich (die Nachricht liegt beim Support), die neue Nachricht erscheint aber erst beim nächsten Laden. - `FilePickerField` (KYC) und das neue `SupportAttachmentField` teilen sich Struktur, wurden aber bewusst nicht zusammengeführt: Die KYC-Seiten sollen ihre Optik behalten. ## Offen Golden-Baselines der zwei geänderten Support-Screens werden über `golden-regenerate.yaml` auf dem Runner erzeugt; bis dahin ist `Visual Regression` erwartungsgemäß rot. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
TaprootFreak
approved these changes
Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic Staging PR
This PR was automatically created after changes were pushed to staging.
Commits: 1 new commit(s)
Checklist