]> git.proxmox.com Git - flutter/pve_flutter_frontend.git/commitdiff
tree-wide: auto-fix all smaller lints
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 11 Apr 2024 08:45:27 +0000 (10:45 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 11 Apr 2024 10:37:44 +0000 (12:37 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
28 files changed:
lib/bloc/proxmox_base_bloc.dart
lib/bloc/pve_access_management_bloc.dart
lib/bloc/pve_bridge_selector_bloc.dart
lib/bloc/pve_cluster_status_bloc.dart
lib/bloc/pve_guest_id_selector_bloc.dart
lib/bloc/pve_lxc_overview_bloc.dart
lib/bloc/pve_migrate_bloc.dart
lib/bloc/pve_qemu_overview_bloc.dart
lib/bloc/pve_task_log_bloc.dart
lib/main.dart
lib/pages/main_layout_slim.dart
lib/utils/dot_indicator.dart
lib/widgets/proxmox_cluster_visualizer.dart
lib/widgets/proxmox_custom_icon.dart
lib/widgets/proxmox_stream_builder_widget.dart
lib/widgets/pve_bridge_selector_widget.dart
lib/widgets/pve_cd_selector_widget.dart
lib/widgets/pve_config_switch_list_tile.dart
lib/widgets/pve_console_menu_widget.dart
lib/widgets/pve_first_welcome_screen.dart
lib/widgets/pve_guest_id_selector_widget.dart
lib/widgets/pve_guest_migrate_widget.dart
lib/widgets/pve_node_overview.dart
lib/widgets/pve_node_selector_widget.dart
lib/widgets/pve_resource_overview_widget.dart
lib/widgets/pve_storage_selector_widget.dart
lib/widgets/pve_task_log_expansiontile_widget.dart
lib/widgets/pve_task_log_widget.dart

index a8dd4a4a2de0c06e6fc871d2e5e93f3a227c4341..c01ade117471ba416603c62994a79cfb909bdc16 100644 (file)
@@ -36,7 +36,7 @@ abstract class ProxmoxBaseBloc<E, S> {
 
   Stream<S> eventPipe(
     PublishSubject<E> events,
-    Stream<S> pipeInto(E event),
+    Stream<S> Function(E event) pipeInto,
   ) {
     return events.asyncExpand(pipeInto);
   }
index 1cc6ae387f7013b5ead9b3868611e4439a2fb404..9e473333a20cac2b40af571d62629c283abfd0b8 100644 (file)
@@ -35,13 +35,13 @@ class PveAccessManagementBloc extends ProxmoxBaseBloc<PveAccessManagementEvent,
   BuiltList<PveAccessUserTokenModel> getTokensFromUserList(
       List<PveAccessUserModel> users) {
     final tokens = [];
-    users.forEach((user) {
+    for (var user in users) {
       if (user.tokens?.isNotEmpty ?? false) {
-        user.tokens!.forEach((t) {
+        for (var t in user.tokens!) {
           tokens.add(t.rebuild((tb) => tb..userid = user.userid));
-        });
+        }
       }
-    });
+    }
     return BuiltList.from(tokens);
   }
 }
index 4d5657050ca0459bcb14af21d04aead4ad53de5d..aa2120796c1361a2ffacc63d7a1172285094d600 100644 (file)
@@ -66,11 +66,6 @@ class PveBridgeSelectorBloc
       }
     }
   }
-
-  @override
-  void dispose() {
-    super.dispose();
-  }
 }
 
 //EVENTS
index 974cdc9323cca88211e2e8cc9c9405bd5f60232f..944f073493a690d228a02e3eee15f7ff73cbb6ef 100644 (file)
@@ -8,6 +8,7 @@ class PveClusterStatusBloc
     extends ProxmoxBaseBloc<PveClusterStatusEvent, PveClusterStatusState> {
   final ProxmoxApiClient apiClient;
   final PveClusterStatusState init;
+  @override
   PveClusterStatusState get initialState => init;
   Timer? updateTimer;
 
@@ -26,6 +27,7 @@ class PveClusterStatusBloc
 
   PveClusterStatusBloc({required this.apiClient, required this.init});
 
+  @override
   Stream<PveClusterStatusState> processEvents(
       PveClusterStatusEvent event) async* {
     if (event is UpdateClusterStatus) {
index b63e430230b689a6f851e145b0aaeac2b76b4370..e1f4a7c1e3d87d8b6ab4f0bd7be4595359a277c4 100644 (file)
@@ -17,7 +17,8 @@ class PveGuestIdSelectorBloc
   @override
   Stream<GuestIdSelectorState> eventPipe(
     PublishSubject<PveGuestIdSelectorEvent> events,
-    Stream<GuestIdSelectorState> pipeInto(PveGuestIdSelectorEvent event),
+    Stream<GuestIdSelectorState> Function(PveGuestIdSelectorEvent event)
+        pipeInto,
   ) {
     return events
         .debounceTime(const Duration(milliseconds: 150))
index 6f50dc69cfbcb25297331add51df9af953d085fa..970ab7917dea9df2becf794750e0a13a499d01c2 100644 (file)
@@ -11,6 +11,7 @@ class PveLxcOverviewBloc
   final PveLxcOverviewState init;
   Timer? updateTimer;
 
+  @override
   PveLxcOverviewState get initialState => init;
 
   PveLxcOverviewBloc({
@@ -32,6 +33,7 @@ class PveLxcOverviewBloc
     }
   }
 
+  @override
   Stream<PveLxcOverviewState> processEvents(PveLxcOverviewEvent event) async* {
     if (event is UpdateLxcStatus) {
       final status =
index 26ef9300acf0cd10b960cb32a936ca201b5d0beb..c47aa2fe6a11cd89135d9a4aaee8a2becc7c43bb 100644 (file)
@@ -97,21 +97,21 @@ class PveMigrateBloc extends ProxmoxBaseBloc<PveMigrateEvent, PveMigrateState> {
   }
 
   Stream<PveMigrateState> checkQemuPreconditons() async* {
-    final _qPreconditions = await (apiClient.getMigratePreconditions(
+    final qPreconditions0 = await (apiClient.getMigratePreconditions(
       latestState.nodeID,
       guestID,
       migrationTarget: latestState.targetNodeID,
     ) as FutureOr<PveNodesQemuMigrate?>);
 
     var preconditions = <PveMigrateCondition>[];
-    if (_qPreconditions == null) {
+    if (qPreconditions0 == null) {
       preconditions.add(PveMigrateCondition((b) => b
         ..severity = PveMigrateSeverity.warning
         ..message = "Couldn't get migration preconditions from API!"));
       yield latestState.rebuild((b) => b..preconditions.replace(preconditions));
     }
-    final qPreconditions = _qPreconditions!;
-    qPreconditions.localDisks!.forEach((d) {
+    final qPreconditions = qPreconditions0!;
+    for (var d in qPreconditions.localDisks!) {
       var disk = d.asMap;
       if (disk['cdrom'] == 1) {
         if (disk['volid'].contains('vm-$guestID-cloudinit')) {
@@ -121,7 +121,7 @@ class PveMigrateBloc extends ProxmoxBaseBloc<PveMigrateEvent, PveMigrateState> {
               ..message =
                   "Can't live migrate VM with local cloudinit disk, use shared storage instead"));
           } else {
-            return;
+            continue;
           }
         } else {
           preconditions.add(PveMigrateCondition((b) => b
@@ -134,7 +134,7 @@ class PveMigrateBloc extends ProxmoxBaseBloc<PveMigrateEvent, PveMigrateState> {
           ..message =
               "Migration with local disk might take long: ${Renderers.formatSize(disk['size'])}"));
       }
-    });
+    }
 
     preconditions.sort((a, b) => a.severity.name.compareTo(b.severity.name));
 
index 2d07d6e335386dd9a04c5d2fdcc1536626b49381..6b4d1640fb467ff98496c9211c28c6c444fe51fe 100644 (file)
@@ -11,6 +11,7 @@ class PveQemuOverviewBloc
   final PveQemuOverviewState init;
   Timer? updateTimer;
 
+  @override
   PveQemuOverviewState get initialState => init;
 
   PveQemuOverviewBloc({
@@ -32,6 +33,7 @@ class PveQemuOverviewBloc
     }
   }
 
+  @override
   Stream<PveQemuOverviewState> processEvents(
       PveQemuOverviewEvent event) async* {
     if (event is UpdateQemuStatus) {
index 039f536032afb08a4882ba119b8538cc13426064..ba12294c6cb9718dedfe296c7ff6b9e6c19c1545 100644 (file)
@@ -35,7 +35,7 @@ class PveTaskLogBloc extends ProxmoxBaseBloc<PVETaskLogEvent, PveTaskLogState> {
     yield latestState.rebuild((b) => b..isBlank = false);
 
     if (event is LoadTasks) {
-      var nodeTaskResponse;
+      NodeTasksResponse nodeTaskResponse;
       yield latestState.rebuild((b) => b..isLoading = true);
 
       nodeTaskResponse = await getNodeTasks(latestState);
index 9e2b135592b154c026b820fb23aaeaa7acb5570d..7b83d68e17582743ad98518575e537385f2307e7 100644 (file)
@@ -89,8 +89,7 @@ class MyApp extends StatelessWidget {
             ..events.add(PollResources());
         }
         if (state is Unauthenticated) {
-          Provider.of<PveResourceBloc>(context, listen: false)
-            ..apiClient = null;
+          Provider.of<PveResourceBloc>(context, listen: false).apiClient = null;
         }
       },
       child: MaterialApp(
index cea57c7c993535070ebf8ac8a7be448d206f82f3..3fef805fec4597477d4849cd0c150f694f7f360e 100644 (file)
@@ -1,6 +1,5 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:flutter/material.dart';
-import 'package:flutter/rendering.dart';
 import 'package:font_awesome_flutter/font_awesome_flutter.dart';
 import 'package:intl/intl.dart';
 import 'package:provider/provider.dart';
@@ -122,20 +121,20 @@ class PveMobileBottomNavigationbar extends StatelessWidget {
     return BottomNavigationBar(
         type: BottomNavigationBarType.fixed,
         backgroundColor: light ? Colors.white : ProxmoxColors.greyShade40,
-        items: [
-          const BottomNavigationBarItem(
+        items: const [
+          BottomNavigationBarItem(
             icon: Icon(Icons.dashboard),
             label: "Dashboard",
           ),
-          const BottomNavigationBarItem(
+          BottomNavigationBarItem(
             icon: Icon(Icons.developer_board),
             label: "Resources",
           ),
-          const BottomNavigationBarItem(
+          BottomNavigationBarItem(
             icon: Icon(Icons.supervised_user_circle),
             label: "Access",
           ),
-          const BottomNavigationBarItem(
+          BottomNavigationBarItem(
             icon: Icon(Icons.logout),
             label: "Sites",
           ),
@@ -325,13 +324,13 @@ class MobileDashboard extends StatelessWidget {
                       var aggrCpuUsage = 0.0;
                       var aggrMemUsage = 0.0;
                       var aggrMem = 0.0;
-                      nodes.forEach((element) {
+                      for (var element in nodes) {
                         aggrCpuUsage +=
                             (element.cpu ?? 0) * (element.maxcpu ?? 0);
                         aggrCpus += element.maxcpu ?? 0;
                         aggrMemUsage += element.mem ?? 0;
                         aggrMem += element.maxmem ?? 0;
-                      });
+                      }
                       final cpuUsagePercent =
                           ((aggrCpuUsage / aggrCpus) * 100).toStringAsFixed(2);
                       final memUsagePercent =
@@ -611,7 +610,7 @@ class MobileResourceOverview extends StatelessWidget {
                 onChanged: (filter) =>
                     rBloc.events.add(FilterResources(nameFilter: filter)),
               ),
-              actions: <Widget>[const AppBarFilterIconButton()],
+              actions: const <Widget>[AppBarFilterIconButton()],
             ),
             body: ListView.separated(
               itemCount: fResources.length,
@@ -638,32 +637,26 @@ class MobileResourceOverview extends StatelessWidget {
                     resource: resource,
                   );
                 }
-                if (listWidget != null) {
-                  if (otherCategory(fResources, index)) {
-                    return Column(
-                      crossAxisAlignment: CrossAxisAlignment.start,
-                      children: [
-                        Padding(
-                          padding: const EdgeInsets.all(12.0),
-                          child: Text(
-                            resource.type.toUpperCase(),
-                            style: const TextStyle(
-                              fontSize: 18,
-                              fontWeight: FontWeight.bold,
-                            ),
+                if (otherCategory(fResources, index)) {
+                  return Column(
+                    crossAxisAlignment: CrossAxisAlignment.start,
+                    children: [
+                      Padding(
+                        padding: const EdgeInsets.all(12.0),
+                        child: Text(
+                          resource.type.toUpperCase(),
+                          style: const TextStyle(
+                            fontSize: 18,
+                            fontWeight: FontWeight.bold,
                           ),
                         ),
-                        listWidget,
-                      ],
-                    );
-                  } else {
-                    return listWidget;
-                  }
+                      ),
+                      listWidget,
+                    ],
+                  );
+                } else {
+                  return listWidget;
                 }
-
-                return const ListTile(
-                  title: Text('Unkown resource type'),
-                );
               },
             ),
             bottomNavigationBar: const PveMobileBottomNavigationbar(),
@@ -674,12 +667,12 @@ class MobileResourceOverview extends StatelessWidget {
   }
 
   bool otherCategory(List<PveClusterResourcesModel> fResources, index) {
-    var previous;
+    PveClusterResourcesModel? previous;
     if (index > 0) {
       previous = fResources[index - 1];
     }
     final current = fResources[index];
-    return previous == null || previous.type != current.type;
+    return previous?.type != current.type;
   }
 }
 
@@ -793,11 +786,13 @@ class AppbarSearchTextField extends StatefulWidget {
 class _AppbarSearchTextFieldState extends State<AppbarSearchTextField> {
   late TextEditingController _controller;
 
+  @override
   void initState() {
     super.initState();
     _controller = TextEditingController();
   }
 
+  @override
   void dispose() {
     _controller.dispose();
     super.dispose();
@@ -1062,24 +1057,24 @@ class MobileAccessManagement extends StatelessWidget {
               isScrollable: true,
               labelStyle:
                   TextStyle(color: Theme.of(context).colorScheme.onPrimary),
-              tabs: [
-                const Tab(
+              tabs: const [
+                Tab(
                   text: 'Users',
                   icon: Icon(Icons.person),
                 ),
-                const Tab(
+                Tab(
                   text: 'API Tokens',
                   icon: Icon(Icons.person_outline),
                 ),
-                const Tab(
+                Tab(
                   text: 'Groups',
                   icon: Icon(Icons.group),
                 ),
-                const Tab(
+                Tab(
                   text: 'Roles',
                   icon: Icon(Icons.lock_open),
                 ),
-                const Tab(
+                Tab(
                   text: 'Domains',
                   icon: Icon(Icons.domain),
                 )
index 6de2cd20b89e051dc4df2f5899a875384ddf0382..12a081c15ae5d3f81b24ee3d5ceceacd718662a7 100644 (file)
@@ -1,4 +1,3 @@
-import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'dart:math';
 
@@ -98,6 +97,7 @@ class DotIndicator extends AnimatedWidget {
     );
   }
 
+  @override
   Widget build(BuildContext contect) {
     return Row(
         mainAxisAlignment: MainAxisAlignment.center,
index 50f58cb3bd075d18732f29ec9120deaa9679e23e..ba5d4a19381214be9395779a3d3e64d033a0c042 100644 (file)
@@ -37,7 +37,7 @@ class ProxmoxClusterVisualizer extends CustomPainter {
 
   @override
   bool shouldRepaint(ProxmoxClusterVisualizer oldDelegate) {
-    return oldDelegate.seeds != this.seeds;
+    return oldDelegate.seeds != seeds;
   }
 
   void drawSeed(Canvas canvas, num x, num y) {
index 55781673c5cc397ccbd21b980ddb1c82e35991d2..345ee662ee43bdedb62cf5e84d20b5bd50956165 100644 (file)
@@ -5,5 +5,5 @@ class ProxmoxIcons {
 
   static const _kFontFam = 'ProxmoxIcons';
 
-  static const IconData proxmox = const IconData(0xf101, fontFamily: _kFontFam);
+  static const IconData proxmox = IconData(0xf101, fontFamily: _kFontFam);
 }
index 1ba2be9ac14c650b30d0cea5878cedf3d75acefd..a346b373763d2641f4f8c56b429e13af6acaf230 100644 (file)
@@ -1,5 +1,4 @@
 import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
 import 'package:pve_flutter_frontend/states/pve_base_state.dart';
 
 import 'package:pve_flutter_frontend/bloc/proxmox_base_bloc.dart';
index 35771ad4c31f2911944265d5092e7baffbf73c31..dcf5890ced28cb6a0b854b2f392606b6745b5214 100644 (file)
@@ -10,10 +10,10 @@ class PveBridgeSelector extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    final _bBloc = Provider.of<PveBridgeSelectorBloc>(context);
+    final bBloc = Provider.of<PveBridgeSelectorBloc>(context);
     return StreamBuilder<PveBridgeSelectorState>(
-      stream: _bBloc.state,
-      initialData: _bBloc.state.value,
+      stream: bBloc.state,
+      initialData: bBloc.state.value,
       builder: (BuildContext context,
           AsyncSnapshot<PveBridgeSelectorState> snapshot) {
         if (snapshot.hasData) {
@@ -40,7 +40,7 @@ class PveBridgeSelector extends StatelessWidget {
                 )
             ],
             onChanged: (PveNodeNetworkModel? selection) =>
-                _bBloc.events.add(BridgeSelectedEvent(selection)),
+                bBloc.events.add(BridgeSelectedEvent(selection)),
             value: state.value,
             autovalidateMode: AutovalidateMode.onUserInteraction,
             validator: (dynamic _) {
index 2976454d776c3bc202aa3fd76334abc39526608c..d1f260efd93ec0161c8f6a78a8a8dedbc457f187 100644 (file)
@@ -55,7 +55,7 @@ class PveCdSelector extends StatelessWidget {
                                         b..content = PveStorageContentType.iso),
                               )..events.add(LoadStoragesEvent()),
                             ));
-                    if (file != null && file is PveNodesStorageContentModel) {
+                    if (file != null) {
                       cdBloc.events.add(FileSelected(file.volid));
                     }
                   },
index ca5eb4f011a9b49f9a37d58c80d8b492f229bb3c..af02ee634ef59f21cadb213506915a038b3188e7 100644 (file)
@@ -19,7 +19,7 @@ class PveConfigSwitchListTile extends StatelessWidget {
   });
   @override
   Widget build(BuildContext context) {
-    var pBool;
+    bool? pBool;
     if (pending != null) {
       pBool = pending == 0 ? false : true;
     }
index 861ec76ef2978e7918d66c7c7346b4416b612d3e..767a51c245070e91f7678e5613630ed4823857dd 100644 (file)
@@ -6,12 +6,11 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:path_provider/path_provider.dart';
 import 'package:proxmox_dart_api_client/proxmox_dart_api_client.dart';
-import 'package:flutter/foundation.dart';
 import 'package:webview_flutter/webview_flutter.dart';
 
 class PveConsoleMenu extends StatelessWidget {
   static const platform =
-      const MethodChannel('com.proxmox.app.pve_flutter_frontend/filesharing');
+      MethodChannel('com.proxmox.app.pve_flutter_frontend/filesharing');
   final ProxmoxApiClient apiClient;
   final String? guestID;
   final bool? allowSpice;
@@ -29,7 +28,6 @@ class PveConsoleMenu extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    final _allowSpice = allowSpice ?? true;
     return SingleChildScrollView(
       child: Container(
         constraints:
@@ -37,7 +35,7 @@ class PveConsoleMenu extends StatelessWidget {
         child: Column(
           mainAxisSize: MainAxisSize.min,
           children: [
-            if (Platform.isAndroid && _allowSpice)
+            if (Platform.isAndroid && (allowSpice ?? true))
               ListTile(
                 title: const Text(
                   "SPICE",
@@ -49,7 +47,7 @@ class PveConsoleMenu extends StatelessWidget {
                   if (Platform.isAndroid) {
                     final tempDir = await getExternalCacheDirectories();
 
-                    var apiPath;
+                    String apiPath;
                     if (['qemu', 'lxc'].contains(type)) {
                       apiPath = '/nodes/$node/$type/$guestID/spiceproxy';
                     } else if (type == 'node') {
index 8e75ee662363a9cd920f98e5abe8c5ef4fb88c84..ee8ce3666fc22fdddfbc16222309177e2ec437f6 100644 (file)
@@ -1,7 +1,4 @@
-import 'dart:ui';
-
 import 'package:flutter/material.dart';
-import 'package:flutter/rendering.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:pve_flutter_frontend/utils/dot_indicator.dart';
 import 'package:pve_flutter_frontend/utils/proxmox_colors.dart';
index 0ec9a440caa6d5d93ea97f0f60bdd3076831ad16..b0c152d80efdc7303d2da7e42472e916881dc01a 100644 (file)
@@ -14,11 +14,10 @@ class PveGuestIdSelector extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    final _pveGuestIdSelectorBloc =
-        Provider.of<PveGuestIdSelectorBloc>(context);
+    final pveGuestIdSelectorBloc = Provider.of<PveGuestIdSelectorBloc>(context);
     return StreamBuilder<PveFormFieldState>(
-        stream: _pveGuestIdSelectorBloc.state,
-        initialData: _pveGuestIdSelectorBloc.state.value,
+        stream: pveGuestIdSelectorBloc.state,
+        initialData: pveGuestIdSelectorBloc.state.value,
         builder: (context, snapshot) {
           final state = snapshot.data!;
 
@@ -32,7 +31,7 @@ class PveGuestIdSelector extends StatelessWidget {
             inputFormatters: [FilteringTextInputFormatter.digitsOnly],
             autovalidateMode: AutovalidateMode.onUserInteraction,
             onChanged: (text) {
-              _pveGuestIdSelectorBloc.events.add(OnChanged(text));
+              pveGuestIdSelectorBloc.events.add(OnChanged(text));
             },
             validator: (_) {
               return state.errorText;
index ff3ea3c4783730d046da95d89fe37ae84749aa12..402fca0adc1d121c36b6022ccdc1f74ddbedd18b 100644 (file)
@@ -142,7 +142,6 @@ class PveGuestMigrate extends StatelessWidget {
 
 class _MigrateTargetSelector extends StatelessWidget {
   const _MigrateTargetSelector({
-    super.key,
     required this.nodeSelectorbloc,
     required this.migrateBloc,
     required this.disabled,
index 2c21d5b153af0acbde1427fdd97cb7ea123676a1..6a3a046de7afd247715a459d141161282c0e7ebb 100644 (file)
@@ -80,9 +80,9 @@ class PveNodeOverview extends StatelessWidget {
                                 fontWeight: FontWeight.w500,
                               ),
                             );
-                            double? last_cpu = rrd.last.cpu;
-                            String last_cpu_text = last_cpu != null
-                                ? "${(last_cpu * 100.0).toStringAsFixed(2)} %"
+                            double? lastCpu = rrd.last.cpu;
+                            String lastCpuText = lastCpu != null
+                                ? "${(lastCpu * 100.0).toStringAsFixed(2)} %"
                                 : "";
                             return Column(
                               children: [
@@ -91,7 +91,7 @@ class PveNodeOverview extends StatelessWidget {
                                     child: PveRRDChart(
                                       title:
                                           'CPU (${state.status?.cpuinfo.cpus ?? '-'})',
-                                      subtitle: last_cpu_text,
+                                      subtitle: lastCpuText,
                                       data: rrd.where((e) => e.cpu != null).map(
                                           (e) => Point(
                                               e.time!.millisecondsSinceEpoch,
index 03b50679d7eb6c9609ddc2c4e75ae8c367ec6350..679b9c8a1a86758021cfde0f0d52c3cc6d3c3f04 100644 (file)
@@ -10,10 +10,10 @@ class PveNodeSelector extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    final _pveNodeSelectorBloc = Provider.of<PveNodeSelectorBloc>(context);
+    final pveNodeSelectorBloc = Provider.of<PveNodeSelectorBloc>(context);
     return StreamBuilder<PveNodeSelectorState>(
-      stream: _pveNodeSelectorBloc.state,
-      initialData: _pveNodeSelectorBloc.state.value,
+      stream: pveNodeSelectorBloc.state,
+      initialData: pveNodeSelectorBloc.state.value,
       builder:
           (BuildContext context, AsyncSnapshot<PveNodeSelectorState> snapshot) {
         if (snapshot.hasData && snapshot.data!.availableNodes.isNotEmpty) {
@@ -37,8 +37,8 @@ class PveNodeSelector extends StatelessWidget {
             selectedItemBuilder: (context) => state.availableNodes
                 .map((item) => Text(item.nodeName))
                 .toList(),
-            onChanged: (String? selectedNode) => _pveNodeSelectorBloc.events
-                .add(NodeSelectedEvent(selectedNode)),
+            onChanged: (String? selectedNode) =>
+                pveNodeSelectorBloc.events.add(NodeSelectedEvent(selectedNode)),
             value: state.selectedNode!.nodeName,
           );
         }
index 9de91e8626ffbb0b7e9a4a3cf1062b18f4f1c96c..1054658bb22790d75bdbeb4e58183a28404e8105 100644 (file)
@@ -16,17 +16,17 @@ class PveResourceOverview extends StatelessWidget {
         initialData: rbloc.state.value,
         builder: (context, snapshot) => SingleChildScrollView(
               child: DataTable(
-                columns: [
-                  const DataColumn(
+                columns: const [
+                  DataColumn(
                     label: Text("Type"),
                   ),
-                  const DataColumn(
+                  DataColumn(
                     label: Text("Description"),
                   ),
-                  const DataColumn(
+                  DataColumn(
                     label: Text("Node"),
                   ),
-                  const DataColumn(
+                  DataColumn(
                     label: Text("Action"),
                   ),
                 ],
index 110e2cebd2b5f04005c74ac4d43fe6b860cbed8d..66d4a3347bb1ab46758d7a5fc09902fd1d178104 100644 (file)
@@ -20,11 +20,11 @@ class PveStorageSelectorDropdown extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    final _pveStorageSelectorBloc =
+    final pveStorageSelectorBloc =
         sBloc ?? Provider.of<PveStorageSelectorBloc>(context);
     return ProxmoxStreamBuilder<PveStorageSelectorBloc,
         PveStorageSelectorState>(
-      bloc: _pveStorageSelectorBloc,
+      bloc: pveStorageSelectorBloc,
       builder: (BuildContext context, state) {
         return DropdownButtonFormField(
           decoration: InputDecoration(
@@ -62,7 +62,7 @@ class PveStorageSelectorDropdown extends StatelessWidget {
               )
           ],
           onChanged: (PveNodesStorageModel? selectedStorage) =>
-              _pveStorageSelectorBloc.events
+              pveStorageSelectorBloc.events
                   .add(StorageSelectedEvent(storage: selectedStorage)),
           selectedItemBuilder: (context) =>
               state.storages.map((item) => Text(item.id)).toList(),
index 9d0ef003ce9a95ba2ffba372139ce947bb8d99fc..a3c36fd18c97216c20f526f4c1da15b9fe57e20e 100644 (file)
@@ -93,14 +93,13 @@ class _PveTaskExpansionTileState extends State<PveTaskExpansionTile> {
           ),
           subtitle: const Text('Start time'),
         ),
-        if (duration != null)
-          ListTile(
-            leading: const Icon(Icons.timelapse),
-            title: Text(
-              Renderers.renderDuration(duration),
-            ),
-            subtitle: const Text('Duration'),
+        ListTile(
+          leading: const Icon(Icons.timelapse),
+          title: Text(
+            Renderers.renderDuration(duration),
           ),
+          subtitle: const Text('Duration'),
+        ),
         ListTile(
           leading: const Icon(Icons.description),
           title: Text(widget.task.status),
index f34b73af13e42d4e6f81cb0d78f3d76f316d5164..012539e17b83d7806da2064025f61211ff04ef74 100644 (file)
@@ -179,7 +179,7 @@ class PveTaskLogScrollView extends StatefulWidget {
 }
 
 class _PveTaskLogScrollViewState extends State<PveTaskLogScrollView> {
-  ScrollController _scrollController = ScrollController();
+  final ScrollController _scrollController = ScrollController();
   @override
   void initState() {
     super.initState();