From af83a70bf494094ce12f872021c1b313aba64d87 Mon Sep 17 00:00:00 2001
From: Vishesh Handa <me@vhanda.in>
Date: Sun, 25 Jul 2021 09:52:14 +0200
Subject: [PATCH] Setup: Top left arrow button should go back

It's extremely irritating that it closes setup.
---
 lib/setup/clone_libgit2.dart |  2 +-
 lib/setup/screens.dart       | 20 ++++++++++++++------
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/lib/setup/clone_libgit2.dart b/lib/setup/clone_libgit2.dart
index 51e0f2fc..4a0c8eb8 100644
--- a/lib/setup/clone_libgit2.dart
+++ b/lib/setup/clone_libgit2.dart
@@ -2,8 +2,8 @@ import 'package:dart_git/dart_git.dart';
 import 'package:dart_git/utils/result.dart';
 import 'package:function_types/function_types.dart';
 import 'package:git_bindings/git_bindings.dart' as git_bindings;
-import 'package:gitjournal/utils/logger.dart';
 
+import 'package:gitjournal/utils/logger.dart';
 import 'clone.dart';
 
 Future<Result<void>> cloneRemote({
diff --git a/lib/setup/screens.dart b/lib/setup/screens.dart
index c7718ae4..fcd501a4 100644
--- a/lib/setup/screens.dart
+++ b/lib/setup/screens.dart
@@ -406,6 +406,10 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
                   padding: const EdgeInsets.all(8.0),
                 ),
                 onTap: () {
+                  if (_currentPageIndex != 0) {
+                    _previousPage();
+                    return;
+                  }
                   _removeRemote();
                   Navigator.of(context).pop();
                 },
@@ -418,10 +422,7 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
     return WillPopScope(
       onWillPop: () async {
         if (_currentPageIndex != 0) {
-          pageController.previousPage(
-            duration: 200.milliseconds,
-            curve: Curves.easeIn,
-          );
+          _previousPage();
           return false;
         }
 
@@ -452,8 +453,15 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
     }
   }
 
-  void _nextPage() {
-    pageController.nextPage(
+  Future<void> _previousPage() {
+    return pageController.previousPage(
+      duration: 200.milliseconds,
+      curve: Curves.easeIn,
+    );
+  }
+
+  Future<void> _nextPage() {
+    return pageController.nextPage(
       duration: 200.milliseconds,
       curve: Curves.easeIn,
     );