name changes in table when changed.

This commit is contained in:
Faris Armoush
2025-06-29 14:13:25 +03:00
parent 01f55c14de
commit e0cfe541dd
3 changed files with 26 additions and 21 deletions

View File

@ -348,17 +348,27 @@ class DeviceManagementBloc
void _onUpdateDeviceName( void _onUpdateDeviceName(
UpdateDeviceName event, Emitter<DeviceManagementState> emit) { UpdateDeviceName event, Emitter<DeviceManagementState> emit) {
_devices = _devices.map((device) { final devices = _devices.map((device) {
if (device.uuid == event.deviceId) { if (device.uuid == event.deviceId) {
return device.copyWith(name: event.newName); return device.copyWith(name: event.newName);
} }
return device; return device;
}).toList(); }).toList();
final filteredDevices = _filteredDevices.map((device) {
if (device.uuid == event.deviceId) {
return device.copyWith(name: event.newName);
}
return device;
}).toList();
_devices = devices;
_filteredDevices = filteredDevices;
if (state is DeviceManagementLoaded) { if (state is DeviceManagementLoaded) {
final loaded = state as DeviceManagementLoaded; final loaded = state as DeviceManagementLoaded;
emit(DeviceManagementLoaded( emit(DeviceManagementLoaded(
devices: _devices, devices: devices,
selectedIndex: loaded.selectedIndex, selectedIndex: loaded.selectedIndex,
onlineCount: loaded.onlineCount, onlineCount: loaded.onlineCount,
offlineCount: loaded.offlineCount, offlineCount: loaded.offlineCount,
@ -369,7 +379,7 @@ class DeviceManagementBloc
} else if (state is DeviceManagementFiltered) { } else if (state is DeviceManagementFiltered) {
final filtered = state as DeviceManagementFiltered; final filtered = state as DeviceManagementFiltered;
emit(DeviceManagementFiltered( emit(DeviceManagementFiltered(
filteredDevices: _filteredDevices, filteredDevices: filteredDevices,
selectedIndex: filtered.selectedIndex, selectedIndex: filtered.selectedIndex,
onlineCount: filtered.onlineCount, onlineCount: filtered.onlineCount,
offlineCount: filtered.offlineCount, offlineCount: filtered.offlineCount,
@ -383,10 +393,7 @@ class DeviceManagementBloc
void _onUpdateSubSpaceName( void _onUpdateSubSpaceName(
UpdateSubSpaceName event, Emitter<DeviceManagementState> emit) { UpdateSubSpaceName event, Emitter<DeviceManagementState> emit) {
_devices = _devices.map((device) { _devices = _devices.map((device) {
print('before update: ${device.subspace?.subspaceName}');
if (device.uuid == event.deviceId) { if (device.uuid == event.deviceId) {
print('Updating subspace name for device: ${device.uuid}');
print('New subspace name: ${event.newSubSpaceName}');
final updatedSubspace = device.subspace?.copyWith( final updatedSubspace = device.subspace?.copyWith(
subspaceName: event.newSubSpaceName, subspaceName: event.newSubSpaceName,
); );
@ -398,15 +405,6 @@ class DeviceManagementBloc
return device; return device;
}).toList(); }).toList();
print('After update:');
for (final device in _devices) {
if (device.uuid == event.deviceId) {
print(
'Device: ${device.uuid}, subspace: ${device.subspace?.uuid}, subspaceName: ${device.subspace?.subspaceName}',
);
}
}
print('Subspace name updated to: $subSpaceName');
if (state is DeviceManagementLoaded) { if (state is DeviceManagementLoaded) {
final loaded = state as DeviceManagementLoaded; final loaded = state as DeviceManagementLoaded;
emit(DeviceManagementLoaded( emit(DeviceManagementLoaded(

View File

@ -254,6 +254,7 @@ class DeviceManagementBody extends StatelessWidget with HelperResponsiveLayout {
child: DeviceSettingsPanel( child: DeviceSettingsPanel(
device: device, device: device,
onClose: () => Navigator.of(context).pop(), onClose: () => Navigator.of(context).pop(),
deviceManagementBloc: context.read<DeviceManagementBloc>(),
), ),
), ),
), ),

View File

@ -3,12 +3,12 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/bloc/device_mgmt_bloc/device_managment_bloc.dart'; import 'package:syncrow_web/pages/device_managment/all_devices/bloc/device_mgmt_bloc/device_managment_bloc.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart'; import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/bloc/setting_bloc_bloc.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/bloc/setting_bloc_state.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/device_icon_type_helper.dart'; import 'package:syncrow_web/pages/device_managment/device_setting/device_icon_type_helper.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/device_management_content.dart'; import 'package:syncrow_web/pages/device_managment/device_setting/device_management_content.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/remove_device_widget.dart'; import 'package:syncrow_web/pages/device_managment/device_setting/remove_device_widget.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/settings_model/device_info_model.dart'; import 'package:syncrow_web/pages/device_managment/device_setting/settings_model/device_info_model.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/bloc/setting_bloc_bloc.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/bloc/setting_bloc_state.dart';
import 'package:syncrow_web/pages/device_managment/device_setting/settings_model/sub_space_model.dart'; import 'package:syncrow_web/pages/device_managment/device_setting/settings_model/sub_space_model.dart';
import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/color_manager.dart';
import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:syncrow_web/utils/constants/assets.dart';
@ -18,7 +18,13 @@ import 'package:syncrow_web/web_layout/default_container.dart';
class DeviceSettingsPanel extends StatelessWidget { class DeviceSettingsPanel extends StatelessWidget {
final VoidCallback? onClose; final VoidCallback? onClose;
final AllDevicesModel device; final AllDevicesModel device;
const DeviceSettingsPanel({super.key, this.onClose, required this.device}); final DeviceManagementBloc deviceManagementBloc;
const DeviceSettingsPanel({
super.key,
this.onClose,
required this.device,
required this.deviceManagementBloc,
});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {