import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart'; import 'package:syncrow_web/pages/routiens/helper/dialog_helper/device_dialog_helper.dart'; import 'package:syncrow_web/pages/routiens/widgets/dragable_card.dart'; import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:uuid/uuid.dart'; class IfContainer extends StatelessWidget { const IfContainer({super.key}); @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { return DragTarget>( builder: (context, candidateData, rejectedData) { return Container( width: double.infinity, padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text('IF', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), const SizedBox(height: 16), if (context.read().isTabToRun) const Row( mainAxisAlignment: MainAxisAlignment.center, children: [ DraggableCard( imagePath: Assets.tabToRun, title: 'Tab to run', deviceData: {}, ), ], ), if (!context.read().isTabToRun) Wrap( spacing: 8, runSpacing: 8, children: List.generate( state.ifItems.length, (index) => DraggableCard( imagePath: state.ifItems[index]['imagePath'] ?? '', title: state.ifItems[index]['title'] ?? '', deviceData: state.ifItems[index], padding: const EdgeInsets.symmetric( horizontal: 4, vertical: 8), isFromThen: false, isFromIf: true, onRemove: () { context.read().add( RemoveDragCard( index: index, isFromThen: false)); }, )), ), ], ), ); }, onWillAccept: (data) => data != null, onAccept: (data) async { // final uniqueCustomId = const Uuid().v4(); // final mutableData = Map.from(data); // mutableData['uniqueCustomId'] = uniqueCustomId; // if (!context.read().isTabToRun) { // if (data['deviceId'] == 'tab_to_run') { // context.read().add(AddToIfContainer(data, true)); // } else { // final result = // await DeviceDialogHelper.showDeviceDialog(context, mutableData); // if (result != null) { // context // .read() // .add(AddToIfContainer(mutableData, false)); // } else if (!['AC', '1G', '2G', '3G'] // .contains(data['productType'])) { // context // .read() // .add(AddToIfContainer(mutableData, false)); // } // } //} final uniqueCustomId = const Uuid().v4(); final mutableData = Map.from(data); mutableData['uniqueCustomId'] = uniqueCustomId; if (!context.read().isTabToRun) { if (mutableData['deviceId'] == 'tab_to_run') { context .read() .add(AddToIfContainer(mutableData, true)); } else { final result = await DeviceDialogHelper.showDeviceDialog( context, mutableData); if (result != null) { context .read() .add(AddToIfContainer(mutableData, false)); } else if (!['AC', '1G', '2G', '3G'] .contains(mutableData['productType'])) { context .read() .add(AddToIfContainer(mutableData, false)); } } } }, ); }, ); } }