From 0d0f63cf2864ccab68e5ab996c0451979da33e59 Mon Sep 17 00:00:00 2001
From: Tuan Anh Nguyen <tuanguye@redhat.com>
Date: Mon, 22 May 2023 18:25:39 +0200
Subject: [PATCH] feat: add image cropping

---
 lib/pages/create_front/select_image.dart | 53 ++++++++++++++++--------
 1 file changed, 36 insertions(+), 17 deletions(-)

diff --git a/lib/pages/create_front/select_image.dart b/lib/pages/create_front/select_image.dart
index 1074e27..e7c0e69 100644
--- a/lib/pages/create_front/select_image.dart
+++ b/lib/pages/create_front/select_image.dart
@@ -12,10 +12,22 @@ class SelectImage extends StatelessWidget {
     final createPostcardNotifier = context.watch<CreatePostcardNotifier>();
 
     return PageTemplate(
-      title: 'Select a Picture',
+      title: 'Create a Postcard',
       actions: [
-        // TODO: next action
-        IconButton(onPressed: () {}, icon: Icon(Icons.navigate_next)),
+        IconButton(
+          onPressed: () {
+            Navigator.of(context).push(
+              MaterialPageRoute(
+                // TODO: use create postcard back page
+                builder: (context) => PageTemplate(
+                  title: 'Create a Postcard',
+                  child: Placeholder(),
+                ),
+              ),
+            );
+          },
+          icon: Icon(Icons.navigate_next),
+        ),
       ],
       child: Align(
         alignment: Alignment.bottomCenter,
@@ -24,30 +36,37 @@ class SelectImage extends StatelessWidget {
           mainAxisAlignment: MainAxisAlignment.center,
           children: [
             Spacer(),
-            createPostcardNotifier.selectedPicture == null
+            createPostcardNotifier.selectedImage == null
                 ? Text('No Image Selected')
                 : Image.file(
-                    createPostcardNotifier.selectedPicture!,
+                    createPostcardNotifier.selectedImage!,
                     width: double.infinity,
                   ),
             Spacer(),
-            ElevatedButton.icon(
-              onPressed: () => createPostcardNotifier.pickImage(
-                ImageSource.gallery,
-              ),
-              icon: Icon(Icons.photo_library),
-              label: Text('Pick Image from Gallery'),
+            _buildPickImageButton(
+              createPostcardNotifier,
+              source: ImageSource.gallery,
             ),
-            ElevatedButton.icon(
-              onPressed: () => createPostcardNotifier.pickImage(
-                ImageSource.camera,
-              ),
-              icon: Icon(Icons.camera),
-              label: Text('Take a Picture'),
+            _buildPickImageButton(
+              createPostcardNotifier,
+              source: ImageSource.camera,
             ),
           ],
         ),
       ),
     );
   }
+
+  ElevatedButton _buildPickImageButton(
+    CreatePostcardNotifier createPostcardNotifier, {
+    required ImageSource source,
+  }) {
+    return ElevatedButton.icon(
+      onPressed: () => createPostcardNotifier.pickImage(source),
+      icon: Icon(Icons.photo_library),
+      label: Text(source == ImageSource.gallery
+          ? 'Pick Image from Gallery'
+          : 'Take Image from Camera'),
+    );
+  }
 }
-- 
GitLab