import 'package:flutter/material.dart'; import 'package:syncrow_web/pages/device_managment/all_devices/helper/route_controls_based_code.dart'; import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/extension/build_context_x.dart'; class DeviceBatchControlDialog extends StatelessWidget with RouteControlsBasedCode { final List devices; const DeviceBatchControlDialog({super.key, required this.devices}); @override Widget build(BuildContext context) { return Dialog( backgroundColor: Colors.white, insetPadding: const EdgeInsets.all(20), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), child: SizedBox( width: devices.length < 2 ? 600 : 800, // height: context.screenHeight * 0.7, child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(20.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const SizedBox(), Column( children: [ Text( getBatchDialogName(devices.first), style: context.textTheme.titleLarge!.copyWith( color: ColorsManager.dialogBlueTitle, fontWeight: FontWeight.bold, ), ), const SizedBox( height: 8, ), Text( "Batch Control", style: context.textTheme.bodySmall!.copyWith( color: ColorsManager.dialogBlueTitle, ), ), ], ), Container( width: 25, decoration: BoxDecoration( color: Colors.transparent, shape: BoxShape.circle, border: Border.all( color: Colors.grey, width: 1.0, ), ), child: IconButton( padding: const EdgeInsets.all(1), icon: const Icon( Icons.close, color: Colors.grey, size: 18, ), onPressed: () { Navigator.of(context).pop(); }, ), ), ], ), const SizedBox(height: 20), //// BUILD DEVICE CONTROLS /// //// ROUTE TO SPECIFIC CONTROL VIEW BASED ON DEVICE CATEGORY routeBatchControlsWidgets(devices: devices), ], ), ), ), ), ); } } String getBatchDialogName(AllDevicesModel device) { /* 3G: 1G: 2G: GW: DL: WPS: CPS: AC: CUR: WH: */ switch (device.productType) { case '1G': return "Smart Light Switch"; case '2G': return "Smart Light Switch"; case '3G': return "Smart Light Switch"; case 'GW': return "Gateway"; case 'DL': return "Door Lock"; case 'WPS': return "White Presence Sensor"; case 'CPS': return "Black Presence Sensor"; case 'CUR': return "Smart Curtains"; case 'WH': return "Smart Water Heater"; case 'AC': return "Smart AC"; case 'DS': return "Door / Window Sensor"; case '1GT': return "Touch Switch"; case '2GT': return "Touch Switch"; case '3GT': return "Touch Switch"; case 'GD': return "Garage Door Opener"; case 'WL': return "Water Leak Sensor"; case 'SOS': return "SOS"; default: return device.categoryName ?? 'Device Control'; } }