import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_side_menu/flutter_side_menu.dart'; import 'package:flutter_translate/flutter_translate.dart'; import 'package:provider/provider.dart'; import '../../../../injection_container.dart'; import '../../../authentication/presentation/bloc/authentication_bloc.dart'; import '../bloc/home_bloc.dart'; class HomePage extends StatefulWidget { const HomePage({super.key}); @override State createState() => _HomePageState(); } class _HomePageState extends State with SingleTickerProviderStateMixin { late final TabController tabController; @override void initState() { tabController = TabController(length: 2, vsync: this); super.initState(); } @override Widget build(BuildContext context) { return MultiProvider( providers: [ Provider( create: (context) => di() ..add(GetUserEvent(userId: di().user.id))), ], builder: (context, child) { return MultiBlocListener( listeners: [ BlocListener( listener: (context, state) { }, ) ], child: Scaffold( extendBodyBehindAppBar: true, body: SafeArea( minimum: const EdgeInsets.only(top: 30.0), child: Row( children: [ SideMenu( hasResizer: false, builder: (data) => SideMenuData( header: const Text('Header'), items: [ SideMenuItemDataTile( isSelected: true, onTap: () {}, title: translate('menu1'), icon: const Icon(Icons.home), ), ], footer: const Text('Footer'), ), ), Expanded( child: Container( color: Colors.white, alignment: Alignment.center, child: Text( 'body', style: Theme.of(context).textTheme.displaySmall, ), ), ), ], ), ) ), ); }, ); } } extension on Widget { Widget? showOrNull(bool isShow) => isShow ? this : null; }