]> git.proxmox.com Git - flutter/pve_flutter_frontend.git/commitdiff
file selector: extract storage card icon widget
authorTim Marx <t.marx@proxmox.com>
Tue, 16 Jun 2020 13:04:34 +0000 (15:04 +0200)
committerTim Marx <t.marx@proxmox.com>
Tue, 16 Jun 2020 13:04:34 +0000 (15:04 +0200)
Signed-off-by: Tim Marx <t.marx@proxmox.com>
lib/utils/renderers.dart
lib/widgets/pve_file_selector_widget.dart

index 8781b454c783ed4783d016714b11e3a6269157e6..30f98cd11e81b48b179919079ad33827562df888 100644 (file)
@@ -49,4 +49,16 @@ class Renderers {
     String twoDigitSeconds = twoDigits(duration.inSeconds.remainder(60));
     return "${twoDigits(duration.inHours)}:$twoDigitMinutes:$twoDigitSeconds";
   }
+
+  static IconData getStorageIcon(String storageType) {
+    var icon = Icons.cloud;
+    if (storageType == "dir") {
+      icon = Icons.folder;
+    }
+
+    if (storageType == "nfs") {
+      icon = Icons.folder_shared;
+    }
+    return icon;
+  }
 }
index 880c9ee2bca4e0861ca72cd099fde81ce4863867..18a23f62e8865606b552c7416fc2405251aec718 100644 (file)
@@ -118,24 +118,30 @@ class PveFileSelectorWidget extends StatelessWidget {
                             var storage = state.storages[index];
                             var isSelected = storage.id == state.selected?.id;
                             var storageIcon =
-                                getStorageIcon(storage.type, isSelected);
+                                Renderers.getStorageIcon(storage.type);
                             return PveStorageCard(
-                                isSelected: isSelected,
-                                sBloc: sBloc,
-                                storage: storage,
-                                storageIcon: storageIcon);
+                              isSelected: isSelected,
+                              sBloc: sBloc,
+                              storage: storage,
+                              storageIcon: PveStorageCardIcon(
+                                icon: storageIcon,
+                                selected: isSelected,
+                              ),
+                            );
                           });
                     }
                     if (state.storages.length == 1) {
                       var storage = state.storages[0];
                       var isSelected = storage.id == state.selected?.id;
-                      var storageIcon =
-                          getStorageIcon(storage.type, isSelected);
+                      var storageIcon = Renderers.getStorageIcon(storage.type);
                       return PveStorageCard(
                         isSelected: isSelected,
                         sBloc: sBloc,
                         storage: storage,
-                        storageIcon: storageIcon,
+                        storageIcon: PveStorageCardIcon(
+                          icon: storageIcon,
+                          selected: isSelected,
+                        ),
                         width: MediaQuery.of(context).size.width * 0.9,
                       );
                     }
@@ -213,16 +219,17 @@ class PveFileSelectorWidget extends StatelessWidget {
       ),
     );
   }
+}
 
-  Widget getStorageIcon(String storageType, bool selected) {
-    var icon = Icons.cloud;
-    if (storageType == "dir") {
-      icon = Icons.folder;
-    }
+class PveStorageCardIcon extends StatelessWidget {
+  final bool selected;
+  final IconData icon;
 
-    if (storageType == "nfs") {
-      icon = Icons.folder_shared;
-    }
+  const PveStorageCardIcon({Key key, this.selected, this.icon})
+      : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
     return Container(
       height: 50,
       width: 50,
@@ -232,6 +239,7 @@ class PveFileSelectorWidget extends StatelessWidget {
         child: Icon(icon),
       ),
     );
+    ;
   }
 }