From 774f21a55b1801d88f84efda14150bad2b2985fe Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Wed, 9 Apr 2025 09:59:15 +0300 Subject: [PATCH] Refactor RoutineDevices to consolidate device data preparation in a single map to remove code duplication. --- .../routines/widgets/routine_devices.dart | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/lib/pages/routines/widgets/routine_devices.dart b/lib/pages/routines/widgets/routine_devices.dart index f6ff0db9..84fd44c0 100644 --- a/lib/pages/routines/widgets/routine_devices.dart +++ b/lib/pages/routines/widgets/routine_devices.dart @@ -42,37 +42,32 @@ class _RoutineDevicesState extends State { runSpacing: 10, children: deviceList.asMap().entries.map((entry) { final device = entry.value; + + final deviceData = { + 'device': device, + 'imagePath': device.getDefaultIcon(device.productType), + 'title': device.name ?? '', + 'deviceId': device.uuid, + 'productType': device.productType, + 'functions': device.functions, + 'uniqueCustomId': '', + }; + if (state.searchText != null && state.searchText!.isNotEmpty) { return device.name! .toLowerCase() .contains(state.searchText!.toLowerCase()) ? DraggableCard( - imagePath: device.getDefaultIcon(device.productType), - title: device.name ?? '', - deviceData: { - 'device': device, - 'imagePath': device.getDefaultIcon(device.productType), - 'title': device.name ?? '', - 'deviceId': device.uuid, - 'productType': device.productType, - 'functions': device.functions, - 'uniqueCustomId': '', - }, + imagePath: deviceData['imagePath'] as String, + title: deviceData['title'] as String, + deviceData: deviceData, ) : const SizedBox.shrink(); } else { return DraggableCard( - imagePath: device.getDefaultIcon(device.productType), - title: device.name ?? '', - deviceData: { - 'device': device, - 'imagePath': device.getDefaultIcon(device.productType), - 'title': device.name ?? '', - 'deviceId': device.uuid, - 'productType': device.productType, - 'functions': device.functions, - 'uniqueCustomId': '', - }, + imagePath: deviceData['imagePath'] as String, + title: deviceData['title'] as String, + deviceData: deviceData, ); } }).toList(),