mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
54 lines
1.9 KiB
Dart
54 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:syncrow_web/pages/device_managment/all_devices/bloc/device_mgmt_bloc/device_managment_bloc.dart';
|
|
import 'package:syncrow_web/pages/routiens/widgets/dragable_card.dart';
|
|
|
|
class RoutineDevices extends StatelessWidget {
|
|
const RoutineDevices({
|
|
super.key,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return BlocProvider(
|
|
create: (context) => DeviceManagementBloc()
|
|
..add(
|
|
FetchDevices(),
|
|
),
|
|
child: BlocBuilder<DeviceManagementBloc, DeviceManagementState>(
|
|
builder: (context, state) {
|
|
if (state is DeviceManagementLoaded) {
|
|
final deviceList = state.devices
|
|
.where((device) =>
|
|
device.productType == 'AC' ||
|
|
device.productType == '1G' ||
|
|
device.productType == '2G' ||
|
|
device.productType == '3G')
|
|
.toList();
|
|
return Wrap(
|
|
spacing: 10,
|
|
runSpacing: 10,
|
|
children: deviceList.asMap().entries.map((entry) {
|
|
final device = entry.value;
|
|
return DraggableCard(
|
|
imagePath: device.getDefaultIcon(device.productType),
|
|
title: device.name ?? '',
|
|
deviceData: {
|
|
'key': UniqueKey().toString(),
|
|
'imagePath': device.getDefaultIcon(device.productType),
|
|
'title': device.name ?? '',
|
|
'deviceId': device.uuid,
|
|
'productType': device.productType,
|
|
'functions': device.functions,
|
|
},
|
|
);
|
|
}).toList(),
|
|
);
|
|
}
|
|
return const Center(child: CircularProgressIndicator());
|
|
},
|
|
),
|
|
);
|
|
}
|
|
}
|