import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:syncrow_web/utils/extension/build_context_x.dart'; class ToggleWidget extends StatelessWidget { final bool value; final String code; final String deviceId; final String label; final String? icon; final Function(dynamic value) onChange; const ToggleWidget({ super.key, required this.value, required this.code, required this.deviceId, required this.label, required this.onChange, this.icon, }); @override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), color: ColorsManager.greyColor.withOpacity(0.2), border: Border.all(color: ColorsManager.boxDivider), ), padding: const EdgeInsets.all(16), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, crossAxisAlignment: CrossAxisAlignment.start, children: [ Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ icon == '-1' ? const SizedBox( height: 60, width: 60, ) : ClipOval( child: Container( color: ColorsManager.whiteColors, child: SvgPicture.asset( icon ?? Assets.lightPulp, width: 60, height: 60, fit: BoxFit.cover, ), )), Text( label, style: context.textTheme.titleMedium!.copyWith( fontWeight: FontWeight.w400, color: ColorsManager.blackColor, ), ), ], ), Container( height: 20, width: 35, padding: const EdgeInsets.only(right: 16, top: 10), child: CupertinoSwitch( value: value, activeColor: ColorsManager.dialogBlueTitle, onChanged: onChange, ), ), ], ), ); } }