From e6328927b1cfe2c24d7441ca7885dcfa1f37c7ff Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Thu, 5 Mar 2020 10:23:01 +0100 Subject: [PATCH] use jiffy for date format --- lib/src/channel_header.dart | 4 ++-- lib/src/channel_preview.dart | 9 +++------ lib/src/message_list_view.dart | 4 +++- lib/src/message_widget.dart | 5 +++-- pubspec.yaml | 3 +-- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/src/channel_header.dart b/lib/src/channel_header.dart index c645832c..889129b8 100644 --- a/lib/src/channel_header.dart +++ b/lib/src/channel_header.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; +import 'package:jiffy/jiffy.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/src/channel_name.dart'; import 'package:stream_chat_flutter/src/stream_chat_theme.dart'; -import 'package:timeago/timeago.dart' as timeago; import './channel_name.dart'; import 'channel_image.dart'; @@ -107,7 +107,7 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { builder: (context, snapshot) { return (snapshot.data != null) ? Text( - 'Active ${timeago.format(snapshot.data)}', + 'Active ${Jiffy(snapshot.data.toLocal()).fromNow()}', style: StreamChatTheme.of(context) .channelTheme .channelHeaderTheme diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index 8174c290..774a72b0 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -1,6 +1,6 @@ -import 'package:date_format/date_format.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; +import 'package:jiffy/jiffy.dart'; import 'package:stream_chat/stream_chat.dart'; import '../stream_chat_flutter.dart'; @@ -67,12 +67,9 @@ class ChannelPreview extends StatelessWidget { if (now.year != lastMessageAt.year || now.month != lastMessageAt.month || now.day != lastMessageAt.day) { - stringDate = - '${lastMessageAt.day}/${lastMessageAt.month}/${lastMessageAt.year}'; - stringDate = formatDate(lastMessageAt, [dd, '/', mm, '/', yyyy]); + stringDate = Jiffy(lastMessageAt.toLocal()).format('dd/MM/yyyy'); } else { - stringDate = '${lastMessageAt.hour}:${lastMessageAt.minute}'; - stringDate = formatDate(lastMessageAt, [HH, ':', nn]); + stringDate = Jiffy(lastMessageAt.toLocal()).format('HH:mm'); } return Text( diff --git a/lib/src/message_list_view.dart b/lib/src/message_list_view.dart index a3124084..8a8668fb 100644 --- a/lib/src/message_list_view.dart +++ b/lib/src/message_list_view.dart @@ -328,7 +328,9 @@ class _MessageListViewState extends State { _streamListener = stream.listen((newMessages) { newMessages = newMessages.reversed.toList(); - if (_messages.isEmpty || newMessages.first.id != _messages.first.id) { + if (_messages.isEmpty || + newMessages.isEmpty || + newMessages.first.id != _messages.first.id) { if (!_scrollController.hasClients || _scrollController.offset < _newMessageLoadingOffset) { setState(() { diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index b15fe903..28a859da 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -2,11 +2,11 @@ import 'dart:math'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:chewie/chewie.dart'; -import 'package:date_format/date_format.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:jiffy/jiffy.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/src/message_input.dart'; import 'package:stream_chat_flutter/src/message_list_view.dart'; @@ -457,6 +457,7 @@ class _MessageWidgetState extends State return GestureDetector( child: IntrinsicWidth(child: column), onLongPress: () { + print('widget.message.type: ${widget.message.type}'); if (widget.message.type == 'ephemeral') { return; } @@ -809,7 +810,7 @@ class _MessageWidgetState extends State return Padding( padding: const EdgeInsets.only(top: 5.0), child: Text( - formatDate(widget.message.createdAt.toLocal(), [HH, ':', nn]), + Jiffy(widget.message.createdAt.toLocal()).format('HH:mm'), style: messageTheme.createdAt, ), ); diff --git a/pubspec.yaml b/pubspec.yaml index a47c0f23..cf2c84e6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,8 +11,7 @@ dependencies: sdk: flutter rxdart: ^0.23.1 flutter_widgets: ^0.1.10 - timeago: ^2.0.26 - date_format: ^1.0.8 + jiffy: ^3.0.0 cached_network_image: ^2.0.0 flutter_markdown: ^0.3.3 url_launcher: ^5.4.1