import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_app/features/devices/bloc/device_settings_bloc/device_scene_bloc.dart'; import 'package:syncrow_app/features/devices/bloc/device_settings_bloc/device_scene_event.dart'; import 'package:syncrow_app/features/devices/bloc/device_settings_bloc/device_scene_state.dart'; import 'package:syncrow_app/features/devices/model/device_model.dart'; import 'package:syncrow_app/features/shared_widgets/default_container.dart'; import 'package:syncrow_app/features/shared_widgets/default_scaffold.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_small.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; class SettingInfoPage extends StatelessWidget { final DeviceModel? device; const SettingInfoPage({super.key, this.device}); @override Widget build(BuildContext context) { return DefaultScaffold( title: 'Device Information', child: BlocProvider( create: (context) => DeviceSettingBloc(deviceId: device?.uuid ?? '') ..add(const DeviceSettingInitial()) ..add(const DeviceSettingInitialInfo()), child: BlocBuilder( builder: (context, state) { final _bloc = BlocProvider.of(context); return state is DeviceSettingLoadingState ? const Center( child: DefaultContainer( width: 50, height: 50, child: CircularProgressIndicator()), ) : RefreshIndicator( onRefresh: () async { _bloc.add(const DeviceSettingInitial()); }, child: DefaultContainer( child: Padding( padding: const EdgeInsets.only(left: 5, right: 5), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ const BodyLarge( text: 'Virtual ID', fontSize: 15, fontWeight: FontWeight.w400, fontColor: ColorsManager.blackColor, ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SizedBox( width: MediaQuery.of(context).size.width * 0.61, child: BodySmall( text: _bloc.deviceInfo.productUuid, fontColor: ColorsManager.primaryTextColor, ), ), InkWell( onTap: () { Clipboard.setData( ClipboardData( text: _bloc.deviceInfo.productUuid, ), ); ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text("Copied to Clipboard"), ), ); }, child: const Row( children: [ Icon( Icons.copy, color: ColorsManager.blueColor, ), BodyMedium( text: 'Copy', fontColor: ColorsManager.blueColor, ), ], ), ) ], ), const Divider( color: ColorsManager.dividerColor, ), Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const BodyLarge( text: 'MAC', fontSize: 15, fontWeight: FontWeight.w400, fontColor: ColorsManager.blackColor, ), BodySmall( text: _bloc.deviceInfo.macAddress, fontColor: ColorsManager.primaryTextColor, ), ], ), const Divider( color: ColorsManager.dividerColor, ), Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const BodyLarge( text: 'Time Zone', fontSize: 15, fontWeight: FontWeight.w400, fontColor: ColorsManager.blackColor, ), BodySmall( text: _bloc.deviceInfo.timeZone, fontColor: ColorsManager.primaryTextColor, ), ], ), ]), ))); }, ), ), ); } }