import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_app/features/scene/bloc/create_scene/create_scene_bloc.dart'; import 'package:syncrow_app/features/scene/enum/create_scene_enum.dart'; import 'package:syncrow_app/features/scene/model/scene_settings_route_arguments.dart'; import 'package:syncrow_app/features/scene/widgets/if_then_containers/then_added_tasks.dart'; import 'package:syncrow_app/features/scene/widgets/scene_list_tile.dart'; import 'package:syncrow_app/features/shared_widgets/default_container.dart'; import 'package:syncrow_app/features/shared_widgets/light_divider.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart'; import 'package:syncrow_app/generated/assets.dart'; import 'package:syncrow_app/navigation/routing_constants.dart'; import 'package:syncrow_app/utils/context_extension.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; class IFDefaultContainer extends StatelessWidget { const IFDefaultContainer({ super.key, }); @override Widget build(BuildContext context) { return DefaultContainer( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 2), child: Column( mainAxisSize: MainAxisSize.min, children: [ SceneListTile( leadingWidget: BodyLarge( text: 'IF', style: context.bodyLarge.copyWith( fontWeight: FontWeight.bold, color: ColorsManager.primaryTextColor, ), ), trailingWidget: GestureDetector( onTap: () => Navigator.pushNamed( context, Routes.sceneControlDevicesRoute, arguments: SceneSettingsRouteArguments( sceneType: CreateSceneEnum.deviceStatusChanges.name, sceneId: '', sceneName: '', ), ), child: SvgPicture.asset( Assets.addIcon, colorFilter: const ColorFilter.mode( ColorsManager.primaryColor, BlendMode.srcIn, ), ), ), padding: EdgeInsets.zero, ), const LightDivider(), BlocBuilder( builder: (context, state) { if (state is CreateSceneLoading) { return const Center(child: LinearProgressIndicator()); } if (state is AddSceneTask) { final automationTasksList = state.automationTasksList; if (automationTasksList?.isNotEmpty == true) { return ListView.builder( shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), itemCount: automationTasksList?.length, reverse: true, itemBuilder: (context, index) { return ThenAddedTasksContainer( taskItem: automationTasksList![index], isAutomation: true, ); }, ); } } return SceneListTile( titleString: '+ Add Condition', textAlign: TextAlign.center, onPressed: () => Navigator.pushNamed( context, Routes.sceneControlDevicesRoute, arguments: SceneSettingsRouteArguments( sceneType: CreateSceneEnum.deviceStatusChanges.name, sceneId: '', sceneName: '', ), ), ); }, ) ], ), ); } }