Merge pull request #1711 from GetStream/chore/bump_min_3.10

This commit is contained in:
Sahil Kumar
2023-08-17 14:31:08 +05:30
committed by GitHub
50 changed files with 351 additions and 203 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ name: legacy_version_analyze
env:
# Note: The versions below should be manually updated after a new stable
# version comes out.
flutter_version: "3.7.12"
flutter_version: "3.10.6"
on:
push:
@@ -2,7 +2,7 @@ name: stream_flutter_workflow
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
flutter_version: "3.10.4"
flutter_channel: "stable"
on:
pull_request:
@@ -37,7 +37,7 @@ jobs:
uses: subosito/flutter-action@v2
with:
cache: true
flutter-version: ${{ env.flutter_version }}
channel: ${{ env.flutter_channel }}
- name: "Install Tools"
run: |
flutter pub global activate melos
+4
View File
@@ -9,6 +9,10 @@
- Added support for `channel.countUnreadMentions()` to get the count of unread messages mentioning the current user on a
channel. [#1692](https://github.com/GetStream/stream-chat-flutter/issues/1692)
🔄 Changed
- Updated minimum supported `SDK` version to Dart 3.0
## 6.7.0
✅ Added
+2 -2
View File
@@ -5,8 +5,8 @@ publish_to: "none"
version: 1.0.0+1
environment:
sdk: '>=2.19.0 <4.0.0'
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
cupertino_icons: ^1.0.5
@@ -1696,7 +1696,7 @@ class ClientState {
void updateUsers(List<User?> userList) {
final newUsers = {
...users,
for (var user in userList)
for (final user in userList)
if (user != null) user.id: user,
};
_usersController.add(newUsers);
@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:uuid/uuid.dart';
///
class TimerHelper {
mixin class TimerHelper {
final _uuid = const Uuid();
late final _timers = <String, Timer>{};
+11 -11
View File
@@ -6,19 +6,19 @@ repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
environment:
sdk: '>=2.19.0 <4.0.0'
sdk: '>=3.0.0 <4.0.0'
dependencies:
async: ^2.10.0
collection: ^1.17.0
dio: ^5.2.1+1
async: ^2.11.0
collection: ^1.17.1
dio: ^5.3.2
equatable: ^2.0.5
freezed_annotation: ^2.2.0
freezed_annotation: ^2.4.1
http_parser: ^4.0.2
jose: ^0.3.3
jose: ^0.3.4
json_annotation: ^4.8.1
logging: ^1.2.0
meta: ^1.8.0
meta: ^1.9.1
mime: ^1.0.4
rate_limiter: ^1.0.0
rxdart: ^0.27.7
@@ -27,8 +27,8 @@ dependencies:
web_socket_channel: ^2.4.0
dev_dependencies:
build_runner: ^2.3.3
freezed: ^2.4.0
json_serializable: ^6.6.2
build_runner: ^2.4.6
freezed: ^2.4.2
json_serializable: ^6.7.1
mocktail: ^1.0.0
test: ^1.24.3
test: ^1.24.6
@@ -975,7 +975,7 @@ void main() {
// skipping initial seed event -> {} users
client.state.usersStream.skip(1),
emitsInOrder([
{for (var user in users) user.id: user},
{for (final user in users) user.id: user},
]),
);
+141 -60
View File
@@ -11,6 +11,27 @@
- Added support for listening error events in AttachmentPickerBottomSheet.
- Added support for overriding the `MessageWidget.onReactionTap` callback.
- Added support for `StreamMessageInput.contentInsertionConfiguration` to specify the content insertion configuration.
[#1613](https://github.com/GetStream/stream-chat-flutter/issues/1613)
```dart
StreamMessageInput(
...,
contentInsertionConfiguration: ContentInsertionConfiguration(
onContentInserted: (content) {
// Do something with the content.
controller.addAttachment(...);
},
),
)
```
🔄 Changed
- Updated minimum supported `SDK` version to Flutter 3.10/Dart 3.0
- Updated `stream_chat_flutter_core` dependency
to [`6.7.0`](https://pub.dev/packages/stream_chat_flutter_core/changelog).
- Updated jiffy dependency to ^6.2.1.
## 6.8.1
@@ -42,43 +63,57 @@
🐞 Fixed
- [[#1620]](https://github.com/GetStream/stream-chat-flutter/issues/1620) Fixed messages Are Not Hard Deleting even
- [[#1620]](https://github.com/GetStream/stream-chat-flutter/issues/1620) Fixed messages Are Not
Hard Deleting even
after overriding the `onConfirmDeleteTap` callback.
- [[#1621]](https://github.com/GetStream/stream-chat-flutter/issues/1621) Fixed `createdAtStyle` null check error
- [[#1621]](https://github.com/GetStream/stream-chat-flutter/issues/1621) Fixed `createdAtStyle`
null check error
in `SendingIndicatorBuilder`.
- [[#1069]](https://github.com/GetStream/stream-chat-flutter/issues/1069) Fixed message swipe to reply using same
direction for both current user and other users. It now uses `SwipeDirection.startToEnd` for current user
- [[#1069]](https://github.com/GetStream/stream-chat-flutter/issues/1069) Fixed message swipe to
reply using same
direction for both current user and other users. It now uses `SwipeDirection.startToEnd` for
current user
and `SwipeDirection.endToStart` for other users.
- [[#1590]](https://github.com/GetStream/stream-chat-flutter/issues/1590)
Fixed `StreamMessageWidget.showReactionPickerIndicator` not toggling the reaction picker indicator visibility.
- [[#1639]](https://github.com/GetStream/stream-chat-flutter/issues/1639) Fixed attachments not showing in gallery view
Fixed `StreamMessageWidget.showReactionPickerIndicator` not toggling the reaction picker indicator
visibility.
- [[#1639]](https://github.com/GetStream/stream-chat-flutter/issues/1639) Fixed attachments not
showing in gallery view
even after saving them to the device.
> **Note**
> This fix depends on the [image_gallery_saver](https://pub.dev/packages/image_gallery_saver) plugin. Make sure to add
> This fix depends on the [image_gallery_saver](https://pub.dev/packages/image_gallery_saver)
plugin. Make sure to add
necessary permissions in your App as per the plugin documentation.
- [[#1642]](https://github.com/GetStream/stream-chat-flutter/issues/1642) Fixed `StreamMessageWidget.widthFactor` not
- [[#1642]](https://github.com/GetStream/stream-chat-flutter/issues/1642)
Fixed `StreamMessageWidget.widthFactor` not
working on web and desktop platforms.
✅ Added
- Added support for customizing attachments in `StreamMessageInput`. Use various properties mentioned
- Added support for customizing attachments in `StreamMessageInput`. Use various properties
mentioned
below. [#1511](https://github.com/GetStream/stream-chat-flutter/issues/1511)
* `StreamMessageInput.attachmentListBuilder` to customize the attachment list.
* `StreamMessageInput.fileAttachmentListBuilder` to customize the file attachment list.
* `StreamMessageInput.mediaAttachmentListBuilder` to customize the media attachment list. Includes images, videos
* `StreamMessageInput.mediaAttachmentListBuilder` to customize the media attachment list.
Includes images, videos
and gifs.
* `StreamMessageInput.fileAttachmentBuilder` to customize the file attachment item shown in `FileAttachmentList`.
* `StreamMessageInput.fileAttachmentBuilder` to customize the file attachment item shown
in `FileAttachmentList`.
* `StreamMessageInput.mediaAttachmentBuilder` to customize the media attachment item shown in
`MediaAttachmentList`.
- Added `StreamMessageInput.quotedMessageAttachmentThumbnailBuilders` to customize the thumbnail builders for quoted
- Added `StreamMessageInput.quotedMessageAttachmentThumbnailBuilders` to customize the thumbnail
builders for quoted
message attachments.
🔄 Changed
- Deprecated `StreamMessageInput.attachmentThumbnailBuilders` in favor of `StreamMessageInput.mediaAttachmentBuilder`.
- Deprecated `StreamMessageListView.onMessageSwiped`. Try wrapping the `MessageWidget` with a `Swipeable`, `Dismissible`
- Deprecated `StreamMessageInput.attachmentThumbnailBuilders` in favor
of `StreamMessageInput.mediaAttachmentBuilder`.
- Deprecated `StreamMessageListView.onMessageSwiped`. Try wrapping the `MessageWidget` with
a `Swipeable`, `Dismissible`
or a custom widget to achieve the swipe to reply behaviour.
```dart
@@ -126,7 +161,8 @@
},
)
```
- Deprecated `StreamMessageWidget.showReactionPickerIndicator` in favor of `StreamMessageWidget.showReactionPicker`.
- Deprecated `StreamMessageWidget.showReactionPickerIndicator` in favor
of `StreamMessageWidget.showReactionPicker`.
```diff
StreamMessageWidget(
@@ -143,16 +179,20 @@
🐞 Fixed
- [[#1600]](https://github.com/GetStream/stream-chat-flutter/issues/1600) Fixed type `ImageDecoderCallback` not found
- [[#1600]](https://github.com/GetStream/stream-chat-flutter/issues/1600) Fixed
type `ImageDecoderCallback` not found
error on pre-Flutter 3.10.0 versions.
- [[#1605]](https://github.com/GetStream/stream-chat-flutter/issues/1605) Fixed Null exception is thrown on message list
- [[#1605]](https://github.com/GetStream/stream-chat-flutter/issues/1605) Fixed Null exception is
thrown on message list
for unread messages when `ScrollToBottomButton` is pressed.
- [[#1615]](https://github.com/GetStream/stream-chat-flutter/issues/1615) Fixed `StreamAttachmentPickerBottomSheet` not
- [[#1615]](https://github.com/GetStream/stream-chat-flutter/issues/1615)
Fixed `StreamAttachmentPickerBottomSheet` not
able to find the `StreamChatTheme` when used in nested MaterialApp.
✅ Added
- Added support for `StreamMessageInput.allowedAttachmentPickerTypes` to specify the allowed attachment picker types.
- Added support for `StreamMessageInput.allowedAttachmentPickerTypes` to specify the allowed
attachment picker types.
[#1601](https://github.com/GetStream/stream-chat-flutter/issues/1376)
```dart
@@ -165,7 +205,8 @@
)
```
- Added support for `StreamMessageWidget.onConfirmDeleteTap` to override the default action on delete confirmation.
- Added support for `StreamMessageWidget.onConfirmDeleteTap` to override the default action on
delete confirmation.
[#1604](https://github.com/GetStream/stream-chat-flutter/issues/1604)
```dart
@@ -178,8 +219,10 @@
)
```
- Added support for `StreamMessageWidget.quotedMessageBuilder` and `StreamMessageInput.quotedMessageBuilder` to override
the default quoted message widget. [#1547](https://github.com/GetStream/stream-chat-flutter/issues/1547)
- Added support for `StreamMessageWidget.quotedMessageBuilder`
and `StreamMessageInput.quotedMessageBuilder` to override
the default quoted message
widget. [#1547](https://github.com/GetStream/stream-chat-flutter/issues/1547)
```dart
StreamMessageWidget(
@@ -193,7 +236,8 @@
)
```
- Added support for `StreamChannelAvatar.ownSpaceAvatarBuilder`, `StreamChannelAvatar.oneToOneAvatarBuilder` and
- Added support
for `StreamChannelAvatar.ownSpaceAvatarBuilder`, `StreamChannelAvatar.oneToOneAvatarBuilder` and
`StreamChannelAvatar.groupAvatarBuilder` to override the default avatar
widget.[#1614](https://github.com/GetStream/stream-chat-flutter/issues/1614)
@@ -225,10 +269,13 @@
🐞 Fixed
- [[#1592]](https://github.com/GetStream/stream-chat-flutter/issues/1592) Fixed broken attachment download on web.
- [[#1591]](https://github.com/GetStream/stream-chat-flutter/issues/1591) Fixed `StreamChannelInfoBottomSheet` not
- [[#1592]](https://github.com/GetStream/stream-chat-flutter/issues/1592) Fixed broken attachment
download on web.
- [[#1591]](https://github.com/GetStream/stream-chat-flutter/issues/1591)
Fixed `StreamChannelInfoBottomSheet` not
rendering member list properly.
- [[#1427]](https://github.com/GetStream/stream-chat-flutter/issues/1427) Fixed unable to load asset error for
- [[#1427]](https://github.com/GetStream/stream-chat-flutter/issues/1427) Fixed unable to load asset
error for
`packages/stream_chat_flutter/lib/svgs/video_call_icon.svg`.
🔄 Changed
@@ -241,30 +288,40 @@
- [[#1546]](https://github.com/GetStream/stream-chat-flutter/issues/1546)
Fixed `StreamMessageInputTheme.linkHighlightColor` returning null for default theme.
- [[#1548]](https://github.com/GetStream/stream-chat-flutter/issues/1548) Fixed `StreamMessageInput` urlRegex only
- [[#1548]](https://github.com/GetStream/stream-chat-flutter/issues/1548) Fixed `StreamMessageInput`
urlRegex only
matching the lowercase `http(s)|ftp`.
- [[#1542]](https://github.com/GetStream/stream-chat-flutter/issues/1542) Handle error thrown in `StreamMessageInput`
- [[#1542]](https://github.com/GetStream/stream-chat-flutter/issues/1542) Handle error thrown
in `StreamMessageInput`
when unable to fetch a link preview.
- [[#1540]](https://github.com/GetStream/stream-chat-flutter/issues/1540) Use `CircularProgressIndicator.adaptive`
- [[#1540]](https://github.com/GetStream/stream-chat-flutter/issues/1540)
Use `CircularProgressIndicator.adaptive`
instead of material indicator.
- [[#1490]](https://github.com/GetStream/stream-chat-flutter/issues/1490) Fixed `editMessageInputBuilder` property not
- [[#1490]](https://github.com/GetStream/stream-chat-flutter/issues/1490)
Fixed `editMessageInputBuilder` property not
used in `MessageActionsModal.editMessage` option.
- [[#1544]](https://github.com/GetStream/stream-chat-flutter/issues/1544) Fixed error thrown when unable to fetch
- [[#1544]](https://github.com/GetStream/stream-chat-flutter/issues/1544) Fixed error thrown when
unable to fetch
image/data in Message link preview.
- [[#1482]](https://github.com/GetStream/stream-chat-flutter/issues/1482) Fixed `StreaChannelListTile` not showing
- [[#1482]](https://github.com/GetStream/stream-chat-flutter/issues/1482)
Fixed `StreaChannelListTile` not showing
unread indicator when `currentUser` is not present in the initial member list.
- [[#1487]](https://github.com/GetStream/stream-chat-flutter/issues/1487) Use localized title
for `WebOrDesktopAttachmentPickerOption` in `StreamMessageInput`.
- [[#1250]](https://github.com/GetStream/stream-chat-flutter/issues/1250) Fixed bottomRow widgetSpans getting resized
- [[#1250]](https://github.com/GetStream/stream-chat-flutter/issues/1250) Fixed bottomRow
widgetSpans getting resized
twice when `textScaling` is enabled.
- [[#1498]](https://github.com/GetStream/stream-chat-flutter/issues/1498) Fixed `MessageInput` autocomplete not working
- [[#1498]](https://github.com/GetStream/stream-chat-flutter/issues/1498) Fixed `MessageInput`
autocomplete not working
on non-mobile platforms.
- [[#1576]](https://github.com/GetStream/stream-chat-flutter/issues/1576) Temporary fix for `StreamMessageListView`
- [[#1576]](https://github.com/GetStream/stream-chat-flutter/issues/1576) Temporary fix
for `StreamMessageListView`
getting broken when loaded at a particular message and a new message is added.
✅ Added
- Added support for `StreamMessageThemeData.urlAttachmentTextMaxLine` to specify the `.maxLines` for the url attachment
- Added support for `StreamMessageThemeData.urlAttachmentTextMaxLine` to specify the `.maxLines` for
the url attachment
text. [#1543](https://github.com/GetStream/stream-chat-flutter/issues/1543)
🔄 Changed
@@ -279,24 +336,33 @@
🐞 Fixed
- [[#1502]](https://github.com/GetStream/stream-chat-flutter/issues/1502) Fixed `isOnlyEmoji` method Detects Single
- [[#1502]](https://github.com/GetStream/stream-chat-flutter/issues/1502) Fixed `isOnlyEmoji` method
Detects Single
Hangul
Consonants as Emoji.
- [[#1505]](https://github.com/GetStream/stream-chat-flutter/issues/1505) Fixed Message bubble disappears for Hangul
- [[#1505]](https://github.com/GetStream/stream-chat-flutter/issues/1505) Fixed Message bubble
disappears for Hangul
Consonants.
- [[#1476]](https://github.com/GetStream/stream-chat-flutter/issues/1476) Fixed `UserAvatarTransform.userAvatarBuilder`
- [[#1476]](https://github.com/GetStream/stream-chat-flutter/issues/1476)
Fixed `UserAvatarTransform.userAvatarBuilder`
works only for otherUser.
- [[#1490]](https://github.com/GetStream/stream-chat-flutter/issues/1490) Fixed `editMessageInputBuilder` property not
- [[#1490]](https://github.com/GetStream/stream-chat-flutter/issues/1490)
Fixed `editMessageInputBuilder` property not
used in message edit widget.
- [[#1523]](https://github.com/GetStream/stream-chat-flutter/issues/1523) Fixed `StreamMessageThemeData` not being
- [[#1523]](https://github.com/GetStream/stream-chat-flutter/issues/1523)
Fixed `StreamMessageThemeData` not being
applied correctly.
- [[#1525]](https://github.com/GetStream/stream-chat-flutter/issues/1525) Fixed `StreamQuotedMessageWidget` message for
- [[#1525]](https://github.com/GetStream/stream-chat-flutter/issues/1525)
Fixed `StreamQuotedMessageWidget` message for
deleted messages not being shown correctly.
- [[#1529]](https://github.com/GetStream/stream-chat-flutter/issues/1529) Fixed `ClipboardData` requires non-nullable
- [[#1529]](https://github.com/GetStream/stream-chat-flutter/issues/1529) Fixed `ClipboardData`
requires non-nullable
string as text on Flutter 3.10.
- [[#1533]](https://github.com/GetStream/stream-chat-flutter/issues/1533) Fixed `StreamMessageListView` messages grouped
- [[#1533]](https://github.com/GetStream/stream-chat-flutter/issues/1533)
Fixed `StreamMessageListView` messages grouped
incorrectly w.r.t. timestamp.
- [[#1532]](https://github.com/GetStream/stream-chat-flutter/issues/1532) Fixed `StreamMessageWidget` actions dialog
- [[#1532]](https://github.com/GetStream/stream-chat-flutter/issues/1532)
Fixed `StreamMessageWidget` actions dialog
backdrop filter is cut off by safe area.
✅ Added
@@ -344,7 +410,8 @@
🔄 Changed
- Updated `dart` sdk environment range to support `3.0.0`.
- Deprecated `MessageTheme.linkBackgroundColor` in favor of `MessageTheme.urlAttachmentBackgroundColor`.
- Deprecated `MessageTheme.linkBackgroundColor` in favor
of `MessageTheme.urlAttachmentBackgroundColor`.
- Updated `stream_chat_flutter_core` dependency
to [`6.1.0`](https://pub.dev/packages/stream_chat_flutter_core/changelog).
@@ -352,18 +419,23 @@
🐞 Fixed
- [[#1456]](https://github.com/GetStream/stream-chat-flutter/issues/1456) Fixed logic for showing that a message was
- [[#1456]](https://github.com/GetStream/stream-chat-flutter/issues/1456) Fixed logic for showing
that a message was
read using sending indicator.
- [[#1462]](https://github.com/GetStream/stream-chat-flutter/issues/1462) Fixed support for iPad in the share button for
- [[#1462]](https://github.com/GetStream/stream-chat-flutter/issues/1462) Fixed support for iPad in
the share button for
images.
- [[#1475]](https://github.com/GetStream/stream-chat-flutter/issues/1475) Fixed typo to fix compilation.
- [[#1475]](https://github.com/GetStream/stream-chat-flutter/issues/1475) Fixed typo to fix
compilation.
✅ Added
- Now it is possible to customize the max lines of the title of a url attachment. Before it was always 1 line.
- Now it is possible to customize the max lines of the title of a url attachment. Before it was
always 1 line.
- Added `attachmentActionsModalBuilder` parameter to `StreamMessageWidget` that allows to
customize `AttachmentActionsModal`.
- Added `StreamMessageInput.sendMessageKeyPredicate` and `StreamMessageInput.clearQuotedMessageKeyPredicate` to
- Added `StreamMessageInput.sendMessageKeyPredicate`
and `StreamMessageInput.clearQuotedMessageKeyPredicate` to
customize the keys used to send and clear the quoted message.
🔄 Changed
@@ -372,7 +444,8 @@
🚀 Improved
- Improved draw of reaction options. [#1455](https://github.com/GetStream/stream-chat-flutter/pull/1455)
- Improved draw of reaction
options. [#1455](https://github.com/GetStream/stream-chat-flutter/pull/1455)
## 5.3.0
@@ -382,7 +455,8 @@
🐞 Fixed
- [[#1424]](https://github.com/GetStream/stream-chat-flutter/issues/1424) Fixed a render issue when showing messages
- [[#1424]](https://github.com/GetStream/stream-chat-flutter/issues/1424) Fixed a render issue when
showing messages
starting with 4 whitespaces.
- Fixed a bug where the `AttachmentPickerBottomSheet` was not able to identify the mobile browser.
- Fixed uploading files on Windows - fixed temp file path.
@@ -395,7 +469,8 @@
✅ Added
- Added a new `bottomRowBuilderWithDefaultWidget` parameter to `StreamMessageWidget` which contains a third parameter (
- Added a new `bottomRowBuilderWithDefaultWidget` parameter to `StreamMessageWidget` which contains
a third parameter (
default `BottomRow` widget with `copyWith` method available) to allow easier customization.
🔄 Changed
@@ -405,18 +480,23 @@
- Updated `connectivity_plus` dependency to `^3.0.2`
- Updated `dart_vlc` dependency to `^0.4.0`
- Updated `file_picker` dependency to `^5.2.4`
- Deprecated `StreamMessageWidget.bottomRowBuilder` in favor of `StreamMessageWidget.bottomRowBuilderWithDefaultWidget`.
- Deprecated `StreamMessageWidget.bottomRowBuilder` in favor
of `StreamMessageWidget.bottomRowBuilderWithDefaultWidget`.
- Deprecated `StreamMessageWidget.deletedBottomRowBuilder` in favor
of `StreamMessageWidget.bottomRowBuilderWithDefaultWidget`.
- Deprecated `StreamMessageWidget.usernameBuilder` in favor of `StreamMessageWidget.bottomRowBuilderWithDefaultWidget`.
- Deprecated `StreamMessageWidget.usernameBuilder` in favor
of `StreamMessageWidget.bottomRowBuilderWithDefaultWidget`.
🐞 Fixed
- [[#1379]](https://github.com/GetStream/stream-chat-flutter/issues/1379) Fixed "Issues with photo attachments on web",
- [[#1379]](https://github.com/GetStream/stream-chat-flutter/issues/1379) Fixed "Issues with photo
attachments on web",
where the cached image attachment would not render while uploading.
- Fix render overflow issue with `MessageSearchListTileTitle`. It now uses `Text.rich` instead of `Row`. Better default
- Fix render overflow issue with `MessageSearchListTileTitle`. It now uses `Text.rich` instead
of `Row`. Better default
behaviour and allows `TextOverflow`.
- [[1346]](https://github.com/GetStream/stream-chat-flutter/issues/1346) Fixed a render issue while uploading video on
- [[1346]](https://github.com/GetStream/stream-chat-flutter/issues/1346) Fixed a render issue while
uploading video on
web.
- [[#1347]](https://github.com/GetStream/stream-chat-flutter/issues/1347) `onReply` not working
in `AttachmentActionsModal` which is used by `StreamImageAttachment` and `StreamImageGroup`.
@@ -459,7 +539,8 @@
* `textInputAction`
* `keyboardType`
* `textCapitalization`
- Added `showStreamAttachmentPickerModalBottomSheet` to show the attachment picker modal bottom sheet.
- Added `showStreamAttachmentPickerModalBottomSheet` to show the attachment picker modal bottom
sheet.
🔄 Changed
@@ -4,8 +4,8 @@ publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=2.19.0 <4.0.0'
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
collection: ^1.15.0
@@ -66,7 +66,8 @@ class StreamGroupAvatar extends StatelessWidget {
Widget avatar = GestureDetector(
onTap: onTap,
child: ClipRRect(
borderRadius: borderRadius ?? previewTheme?.borderRadius,
borderRadius:
borderRadius ?? previewTheme?.borderRadius ?? BorderRadius.zero,
child: Container(
constraints: constraints ?? previewTheme?.constraints,
decoration: BoxDecoration(color: colorTheme.accentPrimary),
@@ -86,7 +86,8 @@ class StreamUserAvatar extends StatelessWidget {
final backupGradientAvatar = ClipRRect(
borderRadius: borderRadius ??
streamChatTheme.ownMessageTheme.avatarTheme?.borderRadius,
streamChatTheme.ownMessageTheme.avatarTheme?.borderRadius ??
BorderRadius.zero,
child: streamChatConfig.defaultUserImage(context, user),
);
@@ -106,9 +106,10 @@ class _ConnectedTitleState extends StatelessWidget {
style: textStyle,
);
} else {
final lastActive = otherMember.user?.lastActive ?? DateTime.now();
alternativeWidget = Text(
'${context.translations.userLastOnlineText} '
'${Jiffy(otherMember.user?.lastActive).fromNow()}',
'${Jiffy.parseFromDateTime(lastActive).fromNow()}',
style: textStyle,
);
}
@@ -349,16 +349,16 @@ class _Date extends StatelessWidget {
if (lastMessageAt.millisecondsSinceEpoch >=
startOfDay.millisecondsSinceEpoch) {
stringDate = Jiffy(lastMessageAt.toLocal()).jm;
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).jm;
} else if (lastMessageAt.millisecondsSinceEpoch >=
startOfDay
.subtract(const Duration(days: 1))
.millisecondsSinceEpoch) {
stringDate = context.translations.yesterdayLabel;
} else if (startOfDay.difference(lastMessageAt).inDays < 7) {
stringDate = Jiffy(lastMessageAt.toLocal()).EEEE;
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).EEEE;
} else {
stringDate = Jiffy(lastMessageAt.toLocal()).yMd;
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).yMd;
}
return Text(
@@ -111,7 +111,8 @@ class StreamChannelAvatar extends StatelessWidget {
initialData: channel.image,
builder: (context, channelImage) {
Widget child = ClipRRect(
borderRadius: borderRadius ?? previewTheme?.borderRadius,
borderRadius:
borderRadius ?? previewTheme?.borderRadius ?? BorderRadius.zero,
child: Container(
constraints: constraints ?? previewTheme?.constraints,
decoration: BoxDecoration(color: colorTheme.accentPrimary),
@@ -611,13 +611,15 @@ class DefaultTranslations implements Translations {
} else if (date == yesterday) {
return 'yesterday';
} else {
return 'on ${Jiffy(date).MMMd}';
return 'on ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Sent ${_getDay(date)} at ${Jiffy(time.toLocal()).format('HH:mm')}';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Sent ${_getDay(date)} at ${atTime.jm}';
}
@override
String get todayLabel => 'Today';
@@ -147,6 +147,7 @@ class StreamMessageInput extends StatefulWidget {
_defaultClearQuotedMessageKeyPredicate,
this.ogPreviewFilter = _defaultOgPreviewFilter,
this.hintGetter = _defaultHintGetter,
this.contentInsertionConfiguration,
});
/// The predicate used to send a message on desktop/web
@@ -340,6 +341,9 @@ class StreamMessageInput extends StatefulWidget {
/// Returns the hint text for the message input.
final HintGetter hintGetter;
/// {@macro flutter.widgets.editableText.contentInsertionConfiguration}
final ContentInsertionConfiguration? contentInsertionConfiguration;
static String? _defaultHintGetter(
BuildContext context,
HintType type,
@@ -905,6 +909,8 @@ class StreamMessageInputState extends State<StreamMessageInput>
decoration: _getInputDecoration(context),
textCapitalization: widget.textCapitalization,
autocorrect: widget.autoCorrect,
contentInsertionConfiguration:
widget.contentInsertionConfiguration,
),
),
),
@@ -120,6 +120,7 @@ class StreamMessageTextField extends StatefulWidget {
this.restorationId,
this.scribbleEnabled = true,
this.enableIMEPersonalizedLearning = true,
this.contentInsertionConfiguration,
}) : assert(obscuringCharacter.length == 1, ''),
smartDashesType = smartDashesType ??
(obscureText ? SmartDashesType.disabled : SmartDashesType.enabled),
@@ -526,6 +527,9 @@ class StreamMessageTextField extends StatefulWidget {
/// {@macro flutter.services.TextInputConfiguration.enableIMEPersonalizedLearning}
final bool enableIMEPersonalizedLearning;
/// {@macro flutter.widgets.editableText.contentInsertionConfiguration}
final ContentInsertionConfiguration? contentInsertionConfiguration;
@override
_StreamMessageTextFieldState createState() => _StreamMessageTextFieldState();
@@ -622,6 +626,9 @@ class StreamMessageTextField extends StatefulWidget {
properties.add(DiagnosticsProperty<bool>(
'enableIMEPersonalizedLearning', enableIMEPersonalizedLearning,
defaultValue: true));
properties.add(DiagnosticsProperty<ContentInsertionConfiguration>(
'contentInsertionConfiguration', contentInsertionConfiguration,
defaultValue: null));
}
}
@@ -727,6 +734,7 @@ class _StreamMessageTextFieldState extends State<StreamMessageTextField>
restorationId: widget.restorationId,
scribbleEnabled: widget.scribbleEnabled,
enableIMEPersonalizedLearning: widget.enableIMEPersonalizedLearning,
contentInsertionConfiguration: widget.contentInsertionConfiguration,
);
@override
@@ -669,14 +669,20 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
final isPartOfThread = message.replyCount! > 0 ||
message.showInChannel == true;
final createdAt = message.createdAt.toLocal();
final nextCreatedAt = nextMessage.createdAt.toLocal();
if (!Jiffy(createdAt).isSame(nextCreatedAt, Units.DAY)) {
final createdAt = Jiffy.parseFromDateTime(
message.createdAt.toLocal(),
);
final nextCreatedAt = Jiffy.parseFromDateTime(
nextMessage.createdAt.toLocal(),
);
if (!createdAt.isSame(nextCreatedAt, unit: Unit.day)) {
separator = _buildDateDivider(nextMessage);
} else {
final hasTimeDiff = !Jiffy(createdAt).isSame(
final hasTimeDiff = !createdAt.isSame(
nextCreatedAt,
Units.MINUTE,
unit: Unit.minute,
);
final isNextUserSame =
@@ -1071,10 +1077,12 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
var hasTimeDiff = false;
if (nextMessage != null) {
hasTimeDiff = !Jiffy(message.createdAt.toLocal()).isSame(
final createdAt = Jiffy.parseFromDateTime(message.createdAt.toLocal());
final nextCreatedAt = Jiffy.parseFromDateTime(
nextMessage.createdAt.toLocal(),
Units.MINUTE,
);
hasTimeDiff = !createdAt.isSame(nextCreatedAt, unit: Unit.minute);
}
final hasFileAttachment =
@@ -162,8 +162,7 @@ class BottomRow extends StatelessWidget {
msg = context.translations.threadReplyCountText(replyCount);
}
// ignore: prefer_function_declarations_over_variables
final _onThreadTap = () async {
Future<void> _onThreadTap() async {
try {
var message = this.message;
if (showInChannel) {
@@ -172,12 +171,9 @@ class BottomRow extends StatelessWidget {
}
return onThreadTap!(message);
} catch (e, stk) {
print(e);
print(stk);
// ignore: avoid_returning_null_for_void
return null;
debugPrint('Error while fetching message: $e, $stk');
}
};
}
const usernameKey = Key('username');
@@ -191,7 +187,7 @@ class BottomRow extends StatelessWidget {
),
if (showTimeStamp)
Text(
Jiffy(message.createdAt.toLocal()).jm,
Jiffy.parseFromDateTime(message.createdAt.toLocal()).jm,
style: messageTheme.createdAtStyle,
),
if (showSendingIndicator)
@@ -20,17 +20,17 @@ class StreamDateDivider extends StatelessWidget {
@override
Widget build(BuildContext context) {
final createdAt = Jiffy(dateTime);
final now = Jiffy(DateTime.now());
final createdAt = Jiffy.parseFromDateTime(dateTime);
final now = Jiffy.parseFromDateTime(DateTime.now());
var dayInfo = createdAt.MMMd;
if (createdAt.isSame(now, Units.DAY)) {
if (createdAt.isSame(now, unit: Unit.day)) {
dayInfo = context.translations.todayLabel;
} else if (createdAt.isSame(now.subtract(days: 1), Units.DAY)) {
} else if (createdAt.isSame(now.subtract(days: 1), unit: Unit.day)) {
dayInfo = context.translations.yesterdayLabel;
} else if (createdAt.isAfter(now.subtract(days: 7), Units.DAY)) {
} else if (createdAt.isAfter(now.subtract(days: 7), unit: Unit.day)) {
dayInfo = createdAt.EEEE;
} else if (createdAt.isAfter(now.subtract(years: 1), Units.DAY)) {
} else if (createdAt.isAfter(now.subtract(years: 1), unit: Unit.day)) {
dayInfo = createdAt.MMMd;
}
@@ -287,16 +287,16 @@ class ChannelLastMessageDate extends StatelessWidget {
if (lastMessageAt.millisecondsSinceEpoch >=
startOfDay.millisecondsSinceEpoch) {
stringDate = Jiffy(lastMessageAt.toLocal()).jm;
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).jm;
} else if (lastMessageAt.millisecondsSinceEpoch >=
startOfDay
.subtract(const Duration(days: 1))
.millisecondsSinceEpoch) {
stringDate = context.translations.yesterdayLabel;
} else if (startOfDay.difference(lastMessageAt).inDays < 7) {
stringDate = Jiffy(lastMessageAt.toLocal()).EEEE;
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).EEEE;
} else {
stringDate = Jiffy(lastMessageAt.toLocal()).yMd;
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).yMd;
}
return Text(
@@ -227,9 +227,9 @@ class MessageSearchTileMessageDate extends StatelessWidget {
if (now.year != createdAt.year ||
now.month != createdAt.month ||
now.day != createdAt.day) {
stringDate = Jiffy(createdAt.toLocal()).yMd;
stringDate = Jiffy.parseFromDateTime(createdAt.toLocal()).yMd;
} else {
stringDate = Jiffy(createdAt.toLocal()).jm;
stringDate = Jiffy.parseFromDateTime(createdAt.toLocal()).jm;
}
return Text(
@@ -202,10 +202,9 @@ class MediaThumbnailProvider extends ImageProvider<MediaThumbnailProvider> {
}
@override
@Deprecated('Will get replaced by loadImage in the next major version.')
ImageStreamCompleter loadBuffer(
ImageStreamCompleter loadImage(
MediaThumbnailProvider key,
DecoderBufferCallback decode,
ImageDecoderCallback decode,
) {
return MultiFrameImageStreamCompleter(
codec: _loadAsync(key, decode),
@@ -220,10 +219,9 @@ class MediaThumbnailProvider extends ImageProvider<MediaThumbnailProvider> {
);
}
@Deprecated('Will get replaced by loadImage in the next major version.')
Future<ui.Codec> _loadAsync(
MediaThumbnailProvider key,
DecoderBufferCallback decode,
ImageDecoderCallback decode,
) async {
assert(key == this, '$key is not $this');
final bytes = await media.thumbnailDataWithSize(
@@ -176,11 +176,12 @@ class UserLastActive extends StatelessWidget {
@override
Widget build(BuildContext context) {
final chatTheme = StreamChatTheme.of(context);
final lastActive = user.lastActive ?? DateTime.now();
return Text(
user.online
? context.translations.userOnlineText
: '${context.translations.userLastOnlineText} '
'${Jiffy(user.lastActive).fromNow()}',
'${Jiffy.parseFromDateTime(lastActive).fromNow()}',
style: chatTheme.textTheme.footnote.copyWith(
color: chatTheme.colorTheme.textHighEmphasis.withOpacity(0.5),
),
@@ -165,9 +165,9 @@ class StreamChatState extends State<StreamChat> {
@override
void didChangeDependencies() {
final currentLocale = Localizations.localeOf(context).toString();
final availableLocales = Jiffy.getAllAvailableLocales();
final availableLocales = Jiffy.getSupportedLocales();
if (availableLocales.contains(currentLocale)) {
Jiffy.locale(currentLocale);
Jiffy.setLocale(currentLocale);
}
super.didChangeDependencies();
}
@@ -74,11 +74,12 @@ class StreamUserItem extends StatelessWidget {
Widget _buildLastActive(BuildContext context) {
final chatTheme = StreamChatTheme.of(context);
final lastActive = user.lastActive ?? DateTime.now();
return Text(
user.online
? context.translations.userOnlineText
: '${context.translations.userLastOnlineText} '
'${Jiffy(user.lastActive).fromNow()}',
'${Jiffy.parseFromDateTime(lastActive).fromNow()}',
style: chatTheme.textTheme.footnote.copyWith(
color: chatTheme.colorTheme.textHighEmphasis.withOpacity(0.5),
),
+16 -16
View File
@@ -6,42 +6,42 @@ repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
environment:
sdk: ">=2.19.0 <4.0.0"
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
cached_network_image: ^3.2.3
chewie: ^1.7.0
collection: ^1.17.0
collection: ^1.17.1
contextmenu: ^3.0.0
dart_vlc: ^0.4.0
desktop_drop: ^0.4.1
diacritic: ^0.1.4
dio: ^5.2.1+1
dio: ^5.3.2
ezanimation: ^0.6.0
file_picker: ^5.3.1
file_picker: ^5.3.3
file_selector: ^1.0.0
flutter:
sdk: flutter
flutter_markdown: ^0.6.15
flutter_markdown: ^0.6.17+1
flutter_portal: ^1.1.4
flutter_svg: ^2.0.5
flutter_svg: ^2.0.7
http_parser: ^4.0.2
image_gallery_saver: ^2.0.3
image_picker: ^1.0.0
jiffy: ^5.0.0
lottie: ^2.3.2
meta: ^1.8.0
path_provider: ^2.0.15
photo_manager: ^2.6.0
image_picker: ^1.0.2
jiffy: ^6.2.1
lottie: ^2.6.0
meta: ^1.9.1
path_provider: ^2.1.0
photo_manager: ^2.7.1
photo_view: ^0.14.0
rxdart: ^0.27.7
share_plus: ^7.0.2
share_plus: ^7.1.0
shimmer: ^3.0.0
stream_chat_flutter_core: ^6.7.0
synchronized: ^3.1.0
thumblr: ^0.0.4
url_launcher: ^6.1.11
url_launcher: ^6.1.12
video_player: ^2.7.0
video_player_macos: ^2.0.1
video_thumbnail: ^0.5.3
@@ -74,4 +74,4 @@ dev_dependencies:
sdk: flutter
golden_toolkit: ^0.15.0
mocktail: ^1.0.0
path: ^1.8.2
path: ^1.8.3
@@ -1,3 +1,8 @@
## Upcoming
- Updated minimum supported `SDK` version to Flutter 3.10/Dart 3.0
- Updated `stream_chat` dependency to [`Upcoming`](https://pub.dev/packages/stream_chat/changelog).
## 6.7.0
- Updated `stream_chat` dependency to [`6.7.0`](https://pub.dev/packages/stream_chat/changelog).
@@ -4,8 +4,8 @@ publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=2.19.0 <4.0.0'
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
cupertino_icons: ^1.0.3
@@ -6,24 +6,24 @@ repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
environment:
sdk: ">=2.19.0 <4.0.0"
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
collection: ^1.17.0
connectivity_plus: ^4.0.1
collection: ^1.17.1
connectivity_plus: ^4.0.2
flutter:
sdk: flutter
freezed_annotation: ^2.2.0
meta: ^1.8.0
freezed_annotation: ^2.4.1
meta: ^1.9.1
rxdart: ^0.27.7
stream_chat: ^6.7.0
dev_dependencies:
build_runner: ^2.3.3
build_runner: ^2.4.6
fake_async: ^1.3.1
flutter_test:
sdk: flutter
freezed: ^2.4.0
freezed: ^2.4.1
mocktail: ^1.0.0
@@ -1,3 +1,8 @@
## Upcoming
* Updated minimum supported `SDK` version to Flutter 3.10/Dart 3.0
* Updated `stream_chat_flutter` dependency to [`Upcoming`](https://pub.dev/packages/stream_chat_flutter/changelog).
## 5.8.0
* Updated `stream_chat_flutter` dependency to [`6.8.0`](https://pub.dev/packages/stream_chat_flutter/changelog).
@@ -270,13 +270,15 @@ class NnStreamChatLocalizations extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'yesterday';
} else {
return 'on ${Jiffy(date).MMMd}';
return 'on ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Sent ${_getDay(date)} at ${Jiffy(time.toLocal()).format('HH:mm')}';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Sent ${_getDay(date)} at ${atTime.jm}';
}
@override
String get todayLabel => 'Today';
@@ -5,8 +5,8 @@ publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=2.19.0 <4.0.0'
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
cupertino_icons: ^1.0.3
@@ -249,13 +249,15 @@ class StreamChatLocalizationsCa extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'ahir';
} else {
return 'el ${Jiffy(date).MMMd}';
return 'el ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'''Enviat el ${_getDay(date)} a les ${Jiffy(time.toLocal()).format('HH:mm')}''';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Enviat el ${_getDay(date)} a les ${atTime.jm}';
}
@override
String get todayLabel => 'Avui';
@@ -239,13 +239,15 @@ class StreamChatLocalizationsDe extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'Gestern';
} else {
return 'am ${Jiffy(date).MMMd}';
return 'am ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Gesendet ${_getDay(date)} am ${Jiffy(time.toLocal()).format('HH:mm')}';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Gesendet ${_getDay(date)} am ${atTime.jm}';
}
@override
String get todayLabel => 'Heute';
@@ -246,13 +246,15 @@ class StreamChatLocalizationsEn extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'yesterday';
} else {
return 'on ${Jiffy(date).MMMd}';
return 'on ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Sent ${_getDay(date)} at ${Jiffy(time.toLocal()).format('HH:mm')}';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Sent ${_getDay(date)} at ${atTime.jm}';
}
@override
String get todayLabel => 'Today';
@@ -250,13 +250,15 @@ class StreamChatLocalizationsEs extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'ayer';
} else {
return 'el ${Jiffy(date).MMMd}';
return 'el ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'''Enviado el ${_getDay(date)} a las ${Jiffy(time.toLocal()).format('HH:mm')}''';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Enviado el ${_getDay(date)} a las ${atTime.jm}';
}
@override
String get todayLabel => 'Hoy';
@@ -249,13 +249,15 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'hier';
} else {
return 'le ${Jiffy(date).MMMd}';
return 'le ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Envoyé ${_getDay(date)} à ${Jiffy(time.toLocal()).format('HH:mm')}';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Envoyé ${_getDay(date)} à ${atTime.jm}';
}
@override
String get todayLabel => "Aujourd'hui";
@@ -243,13 +243,15 @@ class StreamChatLocalizationsHi extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'कल';
} else {
return '${Jiffy(date).MMMd} को';
return '${Jiffy.parseFromDateTime(date).MMMd} को';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'${_getDay(date)} ${Jiffy(time.toLocal()).format('HH:mm')} बजे भेजा गया';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return '${_getDay(date)} ${atTime.jm} बजे भेजा गया';
}
@override
String get todayLabel => 'आज';
@@ -252,13 +252,15 @@ Il file è troppo grande per essere caricato. Il limite è di $limitInMB MB.''';
} else if (date == yesterday) {
return 'ieri';
} else {
return 'il ${Jiffy(date).MMMd}';
return 'il ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
"Inviato ${_getDay(date)} alle ${Jiffy(time.toLocal()).format('HH:mm')}";
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Inviato ${_getDay(date)} alle ${atTime.jm}';
}
@override
String get todayLabel => 'Oggi';
@@ -236,13 +236,15 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return '昨日';
} else {
return '${Jiffy(date).MMMd}';
return '${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'${_getDay(date)}${Jiffy(time.toLocal()).format('HH:mm')}に送信しました ';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return '${_getDay(date)}${atTime.jm}に送信しました ';
}
@override
String get todayLabel => '今日';
@@ -235,13 +235,15 @@ class StreamChatLocalizationsKo extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return '어제';
} else {
return '${Jiffy(date).MMMd}';
return '${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'${_getDay(date)} ${Jiffy(time.toLocal()).format('HH:mm')}에 보냈습니다';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return '${_getDay(date)} ${atTime.jm}에 보냈습니다';
}
@override
String get todayLabel => '오늘';
@@ -242,13 +242,15 @@ class StreamChatLocalizationsNo extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'i går';
} else {
return '${Jiffy(date).MMMd}';
return '${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Sent ${_getDay(date)} kl. ${Jiffy(time.toLocal()).format('HH:mm')}';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Sent ${_getDay(date)} kl. ${atTime.jm}';
}
@override
String get todayLabel => 'I dag';
@@ -244,13 +244,15 @@ class StreamChatLocalizationsPt extends GlobalStreamChatLocalizations {
} else if (date == yesterday) {
return 'Ontem';
} else {
return 'o ${Jiffy(date).MMMd}';
return 'o ${Jiffy.parseFromDateTime(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'''Enviado ${_getDay(date)} às ${Jiffy(time.toLocal()).format('HH:mm')}''';
String sentAtText({required DateTime date, required DateTime time}) {
final atTime = Jiffy.parseFromDateTime(time.toLocal());
return 'Enviado ${_getDay(date)} às ${atTime.jm}';
}
@override
String get todayLabel => 'Hoje';
@@ -6,8 +6,8 @@ repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
environment:
sdk: ">=2.19.0 <4.0.0"
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
flutter:
@@ -1,3 +1,8 @@
## Upcoming
- Updated minimum supported `SDK` version to Flutter 3.10/Dart 3.0
- Updated `stream_chat` dependency to [`Upcoming`](https://pub.dev/packages/stream_chat/changelog).
## 6.7.0
- [[#1683]](https://github.com/GetStream/stream-chat-flutter/issues/1683) Fixed SqliteException no such
@@ -4,8 +4,8 @@ publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=2.19.0 <4.0.0'
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
cupertino_icons: ^1.0.3
@@ -6,23 +6,23 @@ repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
environment:
sdk: ">=2.19.0 <4.0.0"
flutter: ">=3.7.0"
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
dependencies:
drift: ^2.8.0
drift: ^2.11.0
flutter:
sdk: flutter
logging: ^1.2.0
meta: ^1.8.0
path: ^1.8.2
path_provider: ^2.0.15
meta: ^1.9.1
path: ^1.8.3
path_provider: ^2.1.0
sqlite3_flutter_libs: ^0.5.15
stream_chat: ^6.7.0
dev_dependencies:
build_runner: ^2.3.3
drift_dev: ^2.8.3
build_runner: ^2.4.6
drift_dev: ^2.11.0
flutter_test:
sdk: flutter
mocktail: ^1.0.0
+1 -1
View File
@@ -1,7 +1,7 @@
name: stream_chat_flutter_workspace
environment:
sdk: '>=2.19.0 <4.0.0'
sdk: '>=3.0.0 <4.0.0'
dev_dependencies:
melos: ^3.1.0