refactor(chat): fix chat null

This commit is contained in:
mso7nueh
2024-07-31 15:35:14 +03:00
parent 6946060c86
commit 9cfd59b36f
6 changed files with 21 additions and 15 deletions

View File

@@ -17,7 +17,7 @@ class InitializationCubit extends Cubit<InitializationState> {
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<InitializationState> {
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()}',
},

View File

@@ -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<ChatRoomState> {
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()}',
},

View File

@@ -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<ChatSelectEvent, ChatSelectState> {
List<ChatItemModel> fillChatEntryList(List<dynamic> chatRooms) {
List<ChatItemModel> 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'],
),

View File

@@ -12,6 +12,7 @@ class ChatSelectState extends Equatable {
@override
List<Object?> 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<dynamic>? chatRooms;
TextEditingController? searchController;
ChatSelectModel? chatSelectModelObj;
@override
List<Object?> get props => [chatSelectModelObj, chatRooms, searchController];
ChatSelectLoadedState copyWith({
ChatSelectModel? chatSelectModelObj,
TextEditingController? searchController,

View File

@@ -13,13 +13,7 @@ class ChatSelectScreen extends StatelessWidget {
static Widget builder(BuildContext context) {
return BlocProvider<ChatSelectBloc>(
create: (context) => ChatSelectBloc(
ChatSelectState(
chatSelectModelObj: ChatSelectModel(),
),
)..add(
ChatSelectInitialEvent(),
),
create: (context) => ChatSelectBloc(ChatSelectState(chatSelectModelObj: ChatSelectModel()))..add(ChatSelectInitialEvent()),
child: ChatSelectScreen(),
);
}

View File

@@ -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<RegistrationScreen> {
],
),
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: [