forked from eatvio/eatvio_app
refactor(chat): fix chat null
This commit is contained in:
@@ -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()}',
|
||||
},
|
||||
|
||||
@@ -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()}',
|
||||
},
|
||||
|
||||
@@ -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'],
|
||||
),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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(),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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: [
|
||||
|
||||
Reference in New Issue
Block a user