import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/api/chat/chat_provider_model.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/ui/chat/chat_home_screen.dart'; import 'package:mohem_flutter_app/ui/chat/favorite_users_screen.dart'; import 'package:mohem_flutter_app/ui/screens/items_for_sale/fragments/items_for_sale.dart'; import 'package:mohem_flutter_app/ui/screens/items_for_sale/fragments/my_posted_ads_fragment.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:provider/provider.dart'; class ChatHome extends StatefulWidget { const ChatHome({Key? key}) : super(key: key); @override State createState() => _ChatHomeState(); } class _ChatHomeState extends State { int tabIndex = 0; PageController controller = PageController(); late ChatProviderModel data; @override void initState() { // TODO: implement initState super.initState(); data = Provider.of(context, listen: false); data.getUserAutoLoginToken().then((value) { data.getUserRecentChats(); }); } @override void dispose() { data.clearAll(); data.hubConnection.stop(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: MyColors.white, appBar: AppBarWidget( context, title: LocaleKeys.chat.tr(), showHomeButton: true, ), body: Column( children: [ Container( padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16), decoration: const BoxDecoration( borderRadius: BorderRadius.only( bottomLeft: Radius.circular(25), bottomRight: Radius.circular(25), ), gradient: LinearGradient( transform: GradientRotation(.83), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [ MyColors.gradiantEndColor, MyColors.gradiantStartColor, ], ), ), child: Row( children: [myTab(LocaleKeys.mychats.tr(), 0), myTab(LocaleKeys.favorite.tr(), 1)], ), ), PageView( controller: controller, physics: const NeverScrollableScrollPhysics(), onPageChanged: (int pageIndex) { setState(() { tabIndex = pageIndex; }); }, children: [ChatHomeScreen(), ChatFavoriteUsersScreen()], ).expanded, ], ), ); } Widget myTab(String title, int index) { bool isSelected = (index == tabIndex); return Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ title.toText12(color: isSelected ? MyColors.white : MyColors.white.withOpacity(.74), isCenter: true), 4.height, Container( height: 8, width: 8, decoration: BoxDecoration( shape: BoxShape.circle, color: isSelected ? MyColors.white : Colors.transparent, ), ).onPress(() { setState(() { // showFabOptions = true; }); }) ], ).onPress(() { controller.jumpToPage(index); }).expanded; } }