// lib/pages/routiens/widgets/then_container.dart 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/delay_helper.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 ThenContainer extends StatelessWidget { const ThenContainer({super.key}); @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { return DragTarget>( builder: (context, candidateData, rejectedData) { return SingleChildScrollView( child: Container( padding: const EdgeInsets.all(16), width: double.infinity, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text('THEN', style: TextStyle( fontSize: 18, fontWeight: FontWeight.bold)), const SizedBox(height: 16), Wrap( spacing: 8, runSpacing: 8, children: List.generate( state.thenItems.length, (index) => DraggableCard( imagePath: state.thenItems[index]['imagePath'] ?? '', title: state.thenItems[index]['title'] ?? '', deviceData: state.thenItems[index], padding: const EdgeInsets.symmetric( horizontal: 4, vertical: 8), isFromThen: true, isFromIf: false, onRemove: () { context.read().add( RemoveDragCard( index: index, isFromThen: true)); }, ))), ], ), ), ); }, onWillAccept: (data) => data != null, onAccept: (data) async { final uniqueCustomId = const Uuid().v4(); final mutableData = Map.from(data); mutableData['uniqueCustomId'] = uniqueCustomId; if (mutableData['deviceId'] == 'delay') { final result = await DelayHelper.showDelayPickerDialog( context, mutableData['uniqueCustomId']); if (result != null) { context.read().add(AddToThenContainer({ ...mutableData, 'imagePath': Assets.delay, 'title': 'Delay', })); } return; } final result = await DeviceDialogHelper.showDeviceDialog(context, mutableData); if (result != null) { context.read().add(AddToThenContainer(mutableData)); } else if (!['AC', '1G', '2G', '3G'] .contains(mutableData['productType'])) { context.read().add(AddToThenContainer(mutableData)); } }, ); }, ); } }