import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/device_managment/gateway/bloc/gate_way_bloc.dart'; import 'package:syncrow_web/pages/device_managment/shared/batch_control/factory_reset.dart'; import 'package:syncrow_web/pages/device_managment/shared/batch_control/firmware_update.dart'; import 'package:syncrow_web/utils/helpers/responsice_layout_helper/responsive_layout_helper.dart'; class GatewayBatchControlView extends StatelessWidget with HelperResponsiveLayout { const GatewayBatchControlView({super.key, required this.gatewayIds}); final List gatewayIds; @override Widget build(BuildContext context) { final isExtraLarge = isExtraLargeScreenSize(context); final isLarge = isLargeScreenSize(context); final isMedium = isMediumScreenSize(context); return BlocProvider( create: (context) => GateWayBloc()..add(GatWayById(gatewayIds.first)), child: BlocBuilder( builder: (context, state) { if (state is GatewayLoadingState) { return const Center(child: CircularProgressIndicator()); } else if (state is UpdateGatewayState) { return GridView( padding: const EdgeInsets.symmetric(horizontal: 50, vertical: 20), shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: isLarge || isExtraLarge || isMedium ? 2 : 1, mainAxisExtent: 140, crossAxisSpacing: 12, mainAxisSpacing: 12, ), children: [ FirmwareUpdateWidget(deviceId: gatewayIds.first, version: 2), FactoryResetWidget(deviceId: gatewayIds.first), ], ); } else { return const Center(child: Text('Error fetching status')); } }, ), ); } }