forked from eatvio/eatvio_app
feat(chat): refactor
This commit is contained in:
@@ -98,6 +98,7 @@ class ChatRoomCubit extends Cubit<ChatRoomState> {
|
||||
privateChatChannel.subscribe();
|
||||
|
||||
privateChatChannel.bind('App\\Events\\ChatMessageUpdated').listen((event) {
|
||||
print(jsonDecode(event.data));
|
||||
List<ChatMessageModel> messagesList = [
|
||||
ChatMessageModel.fromJson(jsonDecode(event.data)['message']),
|
||||
...(state as ChatRoomStateLoaded).chatMessages,
|
||||
|
||||
@@ -236,9 +236,9 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
onTap: () {
|
||||
if (textEditingController.text.isNotEmpty) {
|
||||
context.read<ChatRoomCubit>().sendMessage(
|
||||
chatId: widget.chatId,
|
||||
data: textEditingController.text.trim(),
|
||||
);
|
||||
chatId: widget.chatId,
|
||||
data: textEditingController.text.trim(),
|
||||
);
|
||||
setState(() {
|
||||
textEditingController.clear();
|
||||
});
|
||||
|
||||
@@ -21,7 +21,7 @@ class ChatRepository {
|
||||
await chatService.sendMessage(
|
||||
id: chatId,
|
||||
data: data,
|
||||
mediaData: files,
|
||||
media_data: files,
|
||||
);
|
||||
} catch (e) {
|
||||
print(e);
|
||||
|
||||
@@ -22,7 +22,7 @@ abstract class ChatService {
|
||||
Future<void> sendMessage({
|
||||
@Path() required String id,
|
||||
@Part() String? data,
|
||||
@Part() List<File>? mediaData,
|
||||
@Part() List<File>? media_data,
|
||||
});
|
||||
|
||||
@GET('/api/chat/show/{id}/messages?page={page}')
|
||||
|
||||
@@ -59,7 +59,7 @@ class _ChatService implements ChatService {
|
||||
Future<void> sendMessage({
|
||||
required String id,
|
||||
String? data,
|
||||
List<File>? mediaData,
|
||||
List<File>? media_data,
|
||||
}) async {
|
||||
final _extra = <String, dynamic>{};
|
||||
final queryParameters = <String, dynamic>{};
|
||||
@@ -72,9 +72,9 @@ class _ChatService implements ChatService {
|
||||
data,
|
||||
));
|
||||
}
|
||||
if (mediaData != null) {
|
||||
_data.files.addAll(mediaData.map((i) => MapEntry(
|
||||
'mediaData',
|
||||
if (media_data != null) {
|
||||
_data.files.addAll(media_data.map((i) => MapEntry(
|
||||
'media_data',
|
||||
MultipartFile.fromFileSync(
|
||||
i.path,
|
||||
filename: i.path.split(Platform.pathSeparator).last,
|
||||
|
||||
@@ -22,11 +22,10 @@ class _BlogPostWidgetState extends State<BlogPostWidget> {
|
||||
Widget build(BuildContext context) {
|
||||
return InkWell(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
onTap: () =>
|
||||
GoRouter.of(context).pushNamed(
|
||||
'blogPostScreen',
|
||||
extra: widget.feedBlogPostModel,
|
||||
),
|
||||
onTap: () => GoRouter.of(context).pushNamed(
|
||||
'blogPostScreen',
|
||||
extra: widget.feedBlogPostModel,
|
||||
),
|
||||
child: Ink(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
@@ -98,6 +97,7 @@ class _BlogPostWidgetState extends State<BlogPostWidget> {
|
||||
tag: baseUrl + '/storage/' + widget.feedBlogPostModel.image,
|
||||
child: CachedNetworkImage(
|
||||
imageUrl: baseUrl + '/storage/' + widget.feedBlogPostModel.image,
|
||||
errorWidget: (context, str, object) => SizedBox.shrink(),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -111,21 +111,19 @@ class _BlogPostWidgetState extends State<BlogPostWidget> {
|
||||
_iconButton(
|
||||
icon: Icons.mode_comment_outlined,
|
||||
text: widget.feedBlogPostModel.totalComments.toString(),
|
||||
onTap: () =>
|
||||
GoRouter.of(context).pushNamed(
|
||||
'blogPostScreen',
|
||||
extra: widget.feedBlogPostModel,
|
||||
),
|
||||
onTap: () => GoRouter.of(context).pushNamed(
|
||||
'blogPostScreen',
|
||||
extra: widget.feedBlogPostModel,
|
||||
),
|
||||
),
|
||||
SizedBox(width: 8),
|
||||
_iconButton(
|
||||
icon: Icons.reply_rounded,
|
||||
onTap: () =>
|
||||
Share.shareUri(
|
||||
Uri.parse(
|
||||
baseUrl + '/ru/blog_post/' + widget.feedBlogPostModel.id.toString(),
|
||||
),
|
||||
),
|
||||
onTap: () => Share.shareUri(
|
||||
Uri.parse(
|
||||
baseUrl + '/ru/blog_post/' + widget.feedBlogPostModel.id.toString(),
|
||||
),
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Icon(
|
||||
|
||||
Reference in New Issue
Block a user