From fbccd5b7d9d147c88d23d65d8910a32c05405129 Mon Sep 17 00:00:00 2001 From: m3mo Date: Tue, 3 Feb 2026 18:27:24 +0100 Subject: [PATCH] Add back navigation from login to setup screen - Add back button on login page for first-time online mode setup - Allow users to return to setup screen and change their mode selection - Add backToSetup localization string for English and German --- .../auth/presentation/pages/login_page.dart | 14 ++++++++++++++ lib/l10n/app_de.arb | 3 ++- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_localizations.dart | 6 ++++++ lib/l10n/app_localizations_de.dart | 3 +++ lib/l10n/app_localizations_en.dart | 3 +++ 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/features/auth/presentation/pages/login_page.dart b/lib/features/auth/presentation/pages/login_page.dart index 6f3f2b5..29f5f44 100644 --- a/lib/features/auth/presentation/pages/login_page.dart +++ b/lib/features/auth/presentation/pages/login_page.dart @@ -3,6 +3,7 @@ import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import '../../../../l10n/app_localizations.dart'; +import '../../../settings/presentation/viewmodels/settings_viewmodel.dart'; import '../viewmodels/auth_viewmodel.dart'; class LoginPage extends StatefulWidget { @@ -178,6 +179,19 @@ class _LoginPageState extends State { ), ], ), + const SizedBox(height: 16), + TextButton.icon( + onPressed: () async { + final settingsVm = context.read(); + await settingsVm.setSetupCompleted(false); + await settingsVm.setOnboardingShown(false); + if (context.mounted) { + context.go('/setup'); + } + }, + icon: const Icon(Icons.arrow_back), + label: Text(l10n.backToSetup), + ), ], ), ), diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 2a3be11..a2f27dd 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -76,5 +76,6 @@ "switchModeWarning": "Der Moduswechsel ändert, wie Ihre Aufgaben gespeichert werden.", "uploadTasksQuestion": "Möchten Sie Ihre lokalen Aufgaben auf den Server hochladen?", "yes": "Ja", - "no": "Nein" + "no": "Nein", + "backToSetup": "Zurück zur Einrichtung" } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 087be1c..5e321ec 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -76,5 +76,6 @@ "switchModeWarning": "Switching modes will change how your tasks are stored.", "uploadTasksQuestion": "Would you like to upload your local tasks to the server?", "yes": "Yes", - "no": "No" + "no": "No", + "backToSetup": "Back to Setup" } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 2879684..f1d64d9 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -559,6 +559,12 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'No'** String get no; + + /// No description provided for @backToSetup. + /// + /// In en, this message translates to: + /// **'Back to Setup'** + String get backToSetup; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 2ca24eb..afca5d9 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -245,4 +245,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get no => 'Nein'; + + @override + String get backToSetup => 'Zurück zur Einrichtung'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index b19caf7..a50f456 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -243,4 +243,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get no => 'No'; + + @override + String get backToSetup => 'Back to Setup'; }