import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_app/features/auth/bloc/auth_cubit.dart'; import 'package:syncrow_app/features/menu/bloc/menu_cubit.dart'; import 'package:syncrow_app/features/menu/view/widgets/menu_list.dart'; import 'package:syncrow_app/features/menu/view/widgets/profile/profile_tab.dart'; import 'package:syncrow_app/features/shared_widgets/build_number_environment.dart'; import 'package:syncrow_app/features/shared_widgets/default_container.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart'; import 'package:syncrow_app/utils/context_extension.dart'; class MenuView extends StatelessWidget { const MenuView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return BlocProvider( create: (BuildContext context) => MenuCubit()..fetchMenuSections(), child: BlocBuilder( builder: (context, menuState) { if (menuState is MenuLoading) { return const Center(child: CircularProgressIndicator()); } else if (menuState is MenuError) { return Center(child: Text(menuState.message)); } else if (menuState is MenuItemsLoaded) { final sections = menuState.menuSections; return SingleChildScrollView( physics: const BouncingScrollPhysics(), child: Column( children: [ const ProfileTab(), for (var section in sections) MenuList(section: section), const SizedBox(height: 15), InkWell( onTap: () { AuthCubit.get(context).logout(); }, child: Row( children: [ Expanded( child: DefaultContainer( child: Center( child: BodyLarge( text: 'Logout', style: context.bodyLarge.copyWith( color: Colors.red, ), ), ), ), ), ], ), ), buildNumberAndEnvironmentLabel() ], ), ); } // Fallback in case no states match return const SizedBox.shrink(); }, ), ); } }