import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart'; import 'package:syncrow_web/pages/routiens/models/device_functions.dart'; import 'package:syncrow_web/pages/routiens/widgets/dialog_header.dart'; import 'package:syncrow_web/pages/routiens/widgets/dialog_footer.dart'; import 'package:syncrow_web/utils/constants/assets.dart'; class AutomationDialog extends StatelessWidget { final String automationName; final String automationId; final String uniqueCustomId; const AutomationDialog({ super.key, required this.automationName, required this.automationId, required this.uniqueCustomId, }); @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { final isEnabled = state.automationActionExecutor == 'rule_enable'; return Dialog( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), child: Container( width: 400, padding: const EdgeInsets.all(16), child: Column( mainAxisSize: MainAxisSize.min, children: [ DialogHeader(automationName), const SizedBox(height: 16), ListTile( leading: SvgPicture.asset(Assets.acPower, width: 24, height: 24), title: const Text('Enable'), trailing: Radio( value: true, groupValue: isEnabled, onChanged: (bool? value) { if (value == true) { context.read().add( const SetAutomationActionExecutor( automationActionExecutor: 'rule_enable', ), ); } }, ), ), ListTile( leading: SvgPicture.asset(Assets.acPowerOff, width: 24, height: 24), title: const Text('Disable'), trailing: Radio( value: false, groupValue: isEnabled, onChanged: (bool? value) { if (value == false) { context.read().add( const SetAutomationActionExecutor( automationActionExecutor: 'rule_disable', ), ); } }, ), ), const SizedBox(height: 16), DialogFooter( onConfirm: () { context.read().add( AddFunctionToRoutine( [ DeviceFunctionData( entityId: automationId, functionCode: 'automation', value: state.automationActionExecutor, operationName: 'Automation', ), ], uniqueCustomId, ), ); Navigator.of(context).pop(true); }, onCancel: () => Navigator.of(context).pop(false), isConfirmEnabled: true, dialogWidth: 400, ), ], ), ), ); }, ); } }