From 9cfd59b36f8cfdc4554642819988bcea7117ec87 Mon Sep 17 00:00:00 2001 From: mso7nueh Date: Wed, 31 Jul 2024 15:35:14 +0300 Subject: [PATCH] refactor(chat): fix chat null --- lib/core/initialization_cubit/initialization_cubit.dart | 4 ++-- .../bloc/chat_room_cubit/chat_room_cubit.dart | 3 ++- .../pages/chat_select_screen/bloc/chat_select_bloc.dart | 8 ++++---- .../pages/chat_select_screen/bloc/chat_select_state.dart | 4 ++++ .../pages/chat_select_screen/chat_select_screen.dart | 8 +------- .../presentation/pages/registration_screen.dart | 9 ++++++++- 6 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/core/initialization_cubit/initialization_cubit.dart b/lib/core/initialization_cubit/initialization_cubit.dart index 4a1bcaf2..29a42f69 100644 --- a/lib/core/initialization_cubit/initialization_cubit.dart +++ b/lib/core/initialization_cubit/initialization_cubit.dart @@ -17,7 +17,7 @@ class InitializationCubit extends Cubit { final privateNotificationChannel = await client.privateChannel( 'private-message-events.$userId', authorizationDelegate: EndpointAuthorizableChannelTokenAuthorizationDelegate.forPrivateChannel( - authorizationEndpoint: Uri.parse('https://mobile-stage.eatvio.ru/broadcasting/auth'), + authorizationEndpoint: Uri.parse(baseUrl + '/broadcasting/auth'), headers: { 'Authorization': 'Bearer ${await TokenStorage.getTokenFromStorage()}', }, @@ -35,7 +35,7 @@ class InitializationCubit extends Cubit { final privateMessagesChannel = await client.privateChannel( 'private-new-chat-messages.$userId', authorizationDelegate: EndpointAuthorizableChannelTokenAuthorizationDelegate.forPrivateChannel( - authorizationEndpoint: Uri.parse('https://mobile-stage.eatvio.ru/broadcasting/auth'), + authorizationEndpoint: Uri.parse(baseUrl + '/broadcasting/auth'), headers: { 'Authorization': 'Bearer ${await TokenStorage.getTokenFromStorage()}', }, diff --git a/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart b/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart index 3773c43c..aaf9a4e9 100644 --- a/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart +++ b/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:dart_pusher_channels/dart_pusher_channels.dart'; import 'package:easy_debounce/easy_debounce.dart'; +import 'package:eatvio_app/core/constants/constants.dart'; import 'package:eatvio_app/core/initialization_cubit/initialization_cubit.dart'; import 'package:eatvio_app/core/initialization_cubit/initialization_state.dart'; import 'package:eatvio_app/core/token_storage.dart'; @@ -87,7 +88,7 @@ class ChatRoomCubit extends Cubit { privateChatChannel = await client.privateChannel( 'private-direct-chat.$chatId', authorizationDelegate: EndpointAuthorizableChannelTokenAuthorizationDelegate.forPrivateChannel( - authorizationEndpoint: Uri.parse('https://mobile-stage.eatvio.ru/broadcasting/auth'), + authorizationEndpoint: Uri.parse(baseUrl + '/broadcasting/auth'), headers: { 'Authorization': 'Bearer ${await TokenStorage.getTokenFromStorage()}', }, diff --git a/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_bloc.dart b/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_bloc.dart index 8c60e607..2eaff048 100644 --- a/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_bloc.dart +++ b/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_bloc.dart @@ -14,6 +14,7 @@ import 'package:intl/intl.dart'; import '/core/app_export.dart'; part 'chat_select_event.dart'; + part 'chat_select_state.dart'; /// A bloc that manages the state of a ChatSelect according to the event that is dispatched to it. @@ -27,16 +28,15 @@ class ChatSelectBloc extends Bloc { List fillChatEntryList(List chatRooms) { List chats = []; for (int i = 0; i < chatRooms.length; i++) { - String text = chatRooms[i]['last_message']['data']; - if (chatRooms[i]['last_message']['is_author_message_auth_user'] != null) { + String text = chatRooms[i]['last_message'] is List ? '' : chatRooms[i]['last_message']['data']; + if (chatRooms[i]['last_message'] is !List && chatRooms[i]['last_message']['is_author_message_auth_user'] != null) { text = "Вы: " + text; } chats.add( ChatItemModel( id: chatRooms[i]['id'], - userImage: chatRooms[i]['users']['to_chat_user']['profile_photo_path'], username: chatRooms[i]['users']['to_chat_user']['name'], - dateText: DateFormat('dd.MM').format( + dateText: chatRooms[i]['last_message'] is List ? '' : DateFormat('dd.MM').format( DateTime.parse( chatRooms[i]['last_message']['updated_at'], ), diff --git a/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_state.dart b/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_state.dart index 2ee186f8..9484c0f9 100644 --- a/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_state.dart +++ b/lib/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_state.dart @@ -12,6 +12,7 @@ class ChatSelectState extends Equatable { @override List get props => [chatSelectModelObj]; + ChatSelectState copyWith({ChatSelectModel? chatSelectModelObj}) { return ChatSelectState( chatSelectModelObj: chatSelectModelObj ?? this.chatSelectModelObj, @@ -29,11 +30,14 @@ class ChatSelectLoadedState extends ChatSelectState { this.searchController, this.chatSelectModelObj, }) : super(chatSelectModelObj: null); + List? chatRooms; TextEditingController? searchController; ChatSelectModel? chatSelectModelObj; + @override List get props => [chatSelectModelObj, chatRooms, searchController]; + ChatSelectLoadedState copyWith({ ChatSelectModel? chatSelectModelObj, TextEditingController? searchController, diff --git a/lib/features/chat/presentation/pages/chat_select_screen/chat_select_screen.dart b/lib/features/chat/presentation/pages/chat_select_screen/chat_select_screen.dart index 5bbd1d7a..fb48d2e6 100644 --- a/lib/features/chat/presentation/pages/chat_select_screen/chat_select_screen.dart +++ b/lib/features/chat/presentation/pages/chat_select_screen/chat_select_screen.dart @@ -13,13 +13,7 @@ class ChatSelectScreen extends StatelessWidget { static Widget builder(BuildContext context) { return BlocProvider( - create: (context) => ChatSelectBloc( - ChatSelectState( - chatSelectModelObj: ChatSelectModel(), - ), - )..add( - ChatSelectInitialEvent(), - ), + create: (context) => ChatSelectBloc(ChatSelectState(chatSelectModelObj: ChatSelectModel()))..add(ChatSelectInitialEvent()), child: ChatSelectScreen(), ); } diff --git a/lib/features/registration/presentation/pages/registration_screen.dart b/lib/features/registration/presentation/pages/registration_screen.dart index 08562908..82e31357 100644 --- a/lib/features/registration/presentation/pages/registration_screen.dart +++ b/lib/features/registration/presentation/pages/registration_screen.dart @@ -19,6 +19,7 @@ import 'package:eatvio_app/features/registration/presentation/pages/weight_scree import 'package:eatvio_app/locator_service.dart'; import 'package:eatvio_app/widgets/app_bar/appbar_title_image.dart'; import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; import 'package:validators/validators.dart'; class RegistrationScreen extends StatefulWidget { @@ -103,7 +104,13 @@ class _RegistrationScreenState extends State { ], ), appBar: AppBar( - automaticallyImplyLeading: true, + automaticallyImplyLeading: false, + leading: Builder( + builder: (context) => IconButton( + icon: Icon(Icons.close_rounded), + onPressed: () => GoRouter.of(context).pop(), + ), + ), centerTitle: true, title: AppbarTitleImage(imagePath: ImageConstant.imgLogoEatvio), actions: [