diff --git a/frontend/src/components/ScrollToTopButton.tsx b/frontend/src/components/ScrollToTopButton.tsx index 4a04d85b..e6bb34b3 100644 --- a/frontend/src/components/ScrollToTopButton.tsx +++ b/frontend/src/components/ScrollToTopButton.tsx @@ -29,10 +29,14 @@ export default function ScrollToTopButton() { if (!isVisible) return null; + // bottom-24 statt bottom-6: der Nach-oben-Button muss auf Seiten mit + // Sticky-Footer (z.B. ContractForm Speichern/Abbrechen) über dem Footer + // sitzen, sonst hängt er beim Runterscrollen genau über dem Speichern- + // Button. 96px reichen für alle heute vorhandenen Sticky-Footer. return ( -

- {isEdit ? 'Vertrag bearbeiten' : 'Neuer Vertrag'} -

+ {/* Sticky-Header: Zurück-Button + Titel + Kunde-Zeile bleiben beim + Scrollen oben stehen. Layout-Padding wird per -mx-8 px-8 + überbrückt, damit der Balken bündig ist. */} +
+
+ +

+ {isEdit ? 'Vertrag bearbeiten' : 'Neuer Vertrag'} +

+
+ {customer && ( +

+ Kunde:{' '} + + {customer.companyName || `${customer.firstName} ${customer.lastName}`} + + + + + +

+ )}
- {customer && ( -

- Kunde:{' '} - - {customer.companyName || `${customer.firstName} ${customer.lastName}`} - - - - - -

- )} {error && (
@@ -1784,7 +1789,11 @@ export default function ContractForm() { /> -
+ {/* Sticky-Footer: Speichern/Abbrechen bleiben unten sichtbar, + damit man beim langen Formular nicht ganz nach unten scrollen + muss. -mx-8 px-8 -mb-8 zieht den Balken bündig an die + Layout-Padding-Kante. */} +