Merge branch 'fix/web-att-ws' into fix-web-attachments

This commit is contained in:
geweald
2021-11-15 11:25:03 +01:00
3 changed files with 112 additions and 99 deletions
+30 -24
View File
@@ -1,3 +1,9 @@
## Upcoming
🐞 Fixed
- `closeConnection()` now uses `normalClosure` status when closing websocket.
## 3.2.0 ## 3.2.0
🐞 Fixed 🐞 Fixed
@@ -21,12 +27,12 @@
🛑️ Breaking Changes from `2.2.1` 🛑️ Breaking Changes from `2.2.1`
- Added 6 new methods in `ChatPersistenceClient`. - Added 6 new methods in `ChatPersistenceClient`.
- `bulkUpdateMessages` - `bulkUpdateMessages`
- `bulkUpdatePinnedMessages` - `bulkUpdatePinnedMessages`
- `bulkUpdateMembers` - `bulkUpdateMembers`
- `bulkUpdateReads` - `bulkUpdateReads`
- `updatePinnedMessageReactions` - `updatePinnedMessageReactions`
- `deletePinnedMessageReactionsByMessageId` - `deletePinnedMessageReactionsByMessageId`
✅ Added ✅ Added
@@ -104,19 +110,19 @@
- migrate this package to null safety - migrate this package to null safety
- `ConnectUserWithProvider` now requires `tokenProvider` as a required param. (Removed from the constructor) - `ConnectUserWithProvider` now requires `tokenProvider` as a required param. (Removed from the constructor)
- `client.disconnect()` is now divided into two different functions - `client.disconnect()` is now divided into two different functions
- `client.closeConnection()` -> for closing user websocket connection. - `client.closeConnection()` -> for closing user websocket connection.
- `client.disconnectUser()` -> for disconnecting user and resetting client state. - `client.disconnectUser()` -> for disconnecting user and resetting client state.
- `client.devToken()` now returns a `Token` model instead of `String`. - `client.devToken()` now returns a `Token` model instead of `String`.
- `ApiError` is removed in favor of `StreamChatError` - `ApiError` is removed in favor of `StreamChatError`
- `StreamChatError` -> parent type for all the stream errors. - `StreamChatError` -> parent type for all the stream errors.
- `StreamWebSocketError` -> for user websocket related errors. - `StreamWebSocketError` -> for user websocket related errors.
- `StreamChatNetworkError` -> for network related errors. - `StreamChatNetworkError` -> for network related errors.
- `client.queryChannels()`, `channel.query()` options param is removed in favor of individual params - `client.queryChannels()`, `channel.query()` options param is removed in favor of individual params
- `option.state` -> bool state - `option.state` -> bool state
- `option.watch` -> bool watch - `option.watch` -> bool watch
- `option.presence` -> bool presence - `option.presence` -> bool presence
- `client.queryUsers()` options param is removed in favor of individual params - `client.queryUsers()` options param is removed in favor of individual params
- `option.presence` -> bool presence - `option.presence` -> bool presence
- Migrate this package to null safety - Migrate this package to null safety
- Added typed filters - Added typed filters
@@ -150,19 +156,19 @@
- `ConnectUserWithProvider` now requires `tokenProvider` as a required param. (Removed from the constructor) - `ConnectUserWithProvider` now requires `tokenProvider` as a required param. (Removed from the constructor)
- `client.disconnect()` is now divided into two different functions - `client.disconnect()` is now divided into two different functions
- `client.closeConnection()` -> for closing user websocket connection. - `client.closeConnection()` -> for closing user websocket connection.
- `client.disconnectUser()` -> for disconnecting user and resetting client state. - `client.disconnectUser()` -> for disconnecting user and resetting client state.
- `client.devToken()` now returns a `Token` model instead of `String`. - `client.devToken()` now returns a `Token` model instead of `String`.
- `ApiError` is removed in favor of `StreamChatError` - `ApiError` is removed in favor of `StreamChatError`
- `StreamChatError` -> parent type for all the stream errors. - `StreamChatError` -> parent type for all the stream errors.
- `StreamWebSocketError` -> for user websocket related errors. - `StreamWebSocketError` -> for user websocket related errors.
- `StreamChatNetworkError` -> for network related errors. - `StreamChatNetworkError` -> for network related errors.
- `client.queryChannels()`, `channel.query()` options param is removed in favor of individual params - `client.queryChannels()`, `channel.query()` options param is removed in favor of individual params
- `option.state` -> bool state - `option.state` -> bool state
- `option.watch` -> bool watch - `option.watch` -> bool watch
- `option.presence` -> bool presence - `option.presence` -> bool presence
- `client.queryUsers()` options param is removed in favor of individual params - `client.queryUsers()` options param is removed in favor of individual params
- `option.presence` -> bool presence - `option.presence` -> bool presence
✅ Added ✅ Added
@@ -121,7 +121,8 @@ class WebSocket with TimerHelper {
_logger?.info('Closing connection with $baseUrl'); _logger?.info('Closing connection with $baseUrl');
if (_webSocketChannel != null) { if (_webSocketChannel != null) {
_unsubscribeFromWebSocketChannel(); _unsubscribeFromWebSocketChannel();
_webSocketChannel?.sink.close(status.goingAway); _webSocketChannel?.sink
.close(_manuallyClosed ? status.normalClosure : status.goingAway);
_webSocketChannel = null; _webSocketChannel = null;
} }
} }
+80 -74
View File
@@ -1,3 +1,9 @@
## Upcoming
🐞 Fixed
- Fixed adding attachments on web.
## 3.2.0 ## 3.2.0
- Updated Dart SDK constraints to `>=2.14.0 <3.0.0` - Updated Dart SDK constraints to `>=2.14.0 <3.0.0`
@@ -70,36 +76,36 @@
⚠️ Deprecated ⚠️ Deprecated
- `MessageSearchListView` `paginationParams` property is now deprecated in favor of `limit`. - `MessageSearchListView` `paginationParams` property is now deprecated in favor of `limit`.
```dart ```dart
// previous // previous
paginationParams = const PaginationParams(limit: 30) paginationParams = const PaginationParams(limit: 30)
// new // new
limit = 30 limit = 30
``` ```
- `UserListView` `pagination` property is now deprecated in favor of `limit`. - `UserListView` `pagination` property is now deprecated in favor of `limit`.
```dart ```dart
// previous // previous
pagination = const PaginationParams(limit: 30) pagination = const PaginationParams(limit: 30)
// new // new
limit = 30 limit = 30
``` ```
- `ChannelListView` `pagination` property is now deprecated in favor of `limit`. - `ChannelListView` `pagination` property is now deprecated in favor of `limit`.
```dart ```dart
// previous // previous
pagination = const PaginationParams(limit: 30) pagination = const PaginationParams(limit: 30)
// new // new
limit = 30 limit = 30
``` ```
🔄 Changed 🔄 Changed
- `UserListViewCore` filter property now has a default value. - `UserListViewCore` filter property now has a default value.
```dart ```dart
filter = const Filter.empty() filter = const Filter.empty()
``` ```
🐞 Fixed 🐞 Fixed
@@ -117,11 +123,11 @@
- [#516](https://github.com/GetStream/stream-chat-flutter/issues/516): - [#516](https://github.com/GetStream/stream-chat-flutter/issues/516):
Added `StreamChatThemeData.placeholderUserImage` for building a widget when the `UserAvatar` image is loading Added `StreamChatThemeData.placeholderUserImage` for building a widget when the `UserAvatar` image is loading
- Added a `backgroundColor` property to the following widgets: - Added a `backgroundColor` property to the following widgets:
- `ChannelHeader` - `ChannelHeader`
- `ChannelListHeader` - `ChannelListHeader`
- `GalleryHeader` - `GalleryHeader`
- `GalleryFooter` - `GalleryFooter`
- `ThreadHeader` - `ThreadHeader`
- Added `MessageInput.attachmentLimit` in order to limit the no. of attachments that can be sent with a single message. - Added `MessageInput.attachmentLimit` in order to limit the no. of attachments that can be sent with a single message.
- Added `MessageInput.onAttachmentLimitExceed` callback which will be called when the `attachmentLimit` is exceeded. - Added `MessageInput.onAttachmentLimitExceed` callback which will be called when the `attachmentLimit` is exceeded.
This will override the default error alert behaviour. This will override the default error alert behaviour.
@@ -135,7 +141,7 @@ typedef ActionButtonBuilder = Widget Function(
``` ```
> **_NOTE:_** The last parameter is the default `ActionButton` > **_NOTE:_** The last parameter is the default `ActionButton`
You can call `.copyWith` to customize just a subset of properties. > You can call `.copyWith` to customize just a subset of properties.
- Added slow mode which allows a cooldown period after a user sends a message. - Added slow mode which allows a cooldown period after a user sends a message.
@@ -144,18 +150,18 @@ You can call `.copyWith` to customize just a subset of properties.
Theming has been upgraded! Most theme classes now have `InheritedTheme` classes associated with them, and have been Theming has been upgraded! Most theme classes now have `InheritedTheme` classes associated with them, and have been
upgraded with some goodies like `lerp` functions. Here's the full naming breakdown: upgraded with some goodies like `lerp` functions. Here's the full naming breakdown:
* `AvatarTheme` is now `AvatarThemeData` - `AvatarTheme` is now `AvatarThemeData`
* `ChannelHeaderTheme` is now `ChannelHeaderThemeData` - `ChannelHeaderTheme` is now `ChannelHeaderThemeData`
* `ChannelListHeaderTheme` is now `ChannelListHeaderThemeData` - `ChannelListHeaderTheme` is now `ChannelListHeaderThemeData`
* `ChannelListViewTheme` is now `ChannelListViewThemeData` - `ChannelListViewTheme` is now `ChannelListViewThemeData`
* `ChannelPreviewTheme` is now `ChannelPreviewThemeData` - `ChannelPreviewTheme` is now `ChannelPreviewThemeData`
* `MessageInputTheme` is now `MessageInputThemeData` - `MessageInputTheme` is now `MessageInputThemeData`
* `MessageListViewTheme` is now `MessageListViewTheme` - `MessageListViewTheme` is now `MessageListViewTheme`
* `MessageSearchListViewTheme` is now `MessageSearchListViewThemeData` - `MessageSearchListViewTheme` is now `MessageSearchListViewThemeData`
* `MessageTheme` is now `MessageThemeData` - `MessageTheme` is now `MessageThemeData`
* `UserListViewTheme` is now `UserListViewThemeData` - `UserListViewTheme` is now `UserListViewThemeData`
- Updated core dependency. * Updated core dependency.
🐞 Fixed 🐞 Fixed
@@ -202,24 +208,25 @@ upgraded with some goodies like `lerp` functions. Here's the full naming breakdo
- Renamed `ChannelImage` to `ChannelAvatar` - Renamed `ChannelImage` to `ChannelAvatar`
- Updated `StreamChatThemeData.reactionIcons` to accept custom builder - Updated `StreamChatThemeData.reactionIcons` to accept custom builder
- Renamed `ColorTheme` properties to reflect the purpose of the colors - Renamed `ColorTheme` properties to reflect the purpose of the colors
- `ColorTheme.black` -> `ColorTheme.textHighEmphasis`
- `ColorTheme.grey` -> `ColorTheme.textLowEmphasis` - `ColorTheme.black` -> `ColorTheme.textHighEmphasis`
- `ColorTheme.greyGainsboro` -> `ColorTheme.disabled` - `ColorTheme.grey` -> `ColorTheme.textLowEmphasis`
- `ColorTheme.greyWhisper` -> `ColorTheme.borders` - `ColorTheme.greyGainsboro` -> `ColorTheme.disabled`
- `ColorTheme.whiteSmoke` -> `ColorTheme.inputBg` - `ColorTheme.greyWhisper` -> `ColorTheme.borders`
- `ColorTheme.whiteSnow` -> `ColorTheme.appBg` - `ColorTheme.whiteSmoke` -> `ColorTheme.inputBg`
- `ColorTheme.white` -> `ColorTheme.barsBg` - `ColorTheme.whiteSnow` -> `ColorTheme.appBg`
- `ColorTheme.blueAlice` -> `ColorTheme.linkBg` - `ColorTheme.white` -> `ColorTheme.barsBg`
- `ColorTheme.accentBlue` -> `ColorTheme.accentPrimary` - `ColorTheme.blueAlice` -> `ColorTheme.linkBg`
- `ColorTheme.accentRed` -> `ColorTheme.accentError` - `ColorTheme.accentBlue` -> `ColorTheme.accentPrimary`
- `ColorTheme.accentGreen` -> `ColorTheme.accentInfo` - `ColorTheme.accentRed` -> `ColorTheme.accentError`
- `ColorTheme.accentGreen` -> `ColorTheme.accentInfo`
- `ChannelListCore` options property is removed in favor of individual properties - `ChannelListCore` options property is removed in favor of individual properties
- `options.state` -> bool state - `options.state` -> bool state
- `options.watch` -> bool watch - `options.watch` -> bool watch
- `options.presence` -> bool presence - `options.presence` -> bool presence
- `UserListView` options property is removed in favor of individual properties - `UserListView` options property is removed in favor of individual properties
- `options.presence` -> bool presence - `options.presence` -> bool presence
- Renamed `ImageHeader` to `GalleryHeader` - Renamed `ImageHeader` to `GalleryHeader`
- Renamed `ImageFooter` to `GalleryFooter` - Renamed `ImageFooter` to `GalleryFooter`
- `MessageBuilder` and `ParentMessageBuilder` signature is now - `MessageBuilder` and `ParentMessageBuilder` signature is now
@@ -234,8 +241,7 @@ typedef MessageBuilder = Widget Function(
``` ```
> **_NOTE:_** the last parameter is the default `MessageWidget` > **_NOTE:_** the last parameter is the default `MessageWidget`
You can call `.copyWith` to customize just a subset of properties > You can call `.copyWith` to customize just a subset of properties
✅ Added ✅ Added
@@ -263,17 +269,17 @@ You can call `.copyWith` to customize just a subset of properties
🛑️ Breaking Changes from `2.0.0-nullsafety.8` 🛑️ Breaking Changes from `2.0.0-nullsafety.8`
- Renamed `ColorTheme` properties to reflect the purpose of the colors - Renamed `ColorTheme` properties to reflect the purpose of the colors
- `ColorTheme.black` -> `ColorTheme.textHighEmphasis` - `ColorTheme.black` -> `ColorTheme.textHighEmphasis`
- `ColorTheme.grey` -> `ColorTheme.textLowEmphasis` - `ColorTheme.grey` -> `ColorTheme.textLowEmphasis`
- `ColorTheme.greyGainsboro` -> `ColorTheme.disabled` - `ColorTheme.greyGainsboro` -> `ColorTheme.disabled`
- `ColorTheme.greyWhisper` -> `ColorTheme.borders` - `ColorTheme.greyWhisper` -> `ColorTheme.borders`
- `ColorTheme.whiteSmoke` -> `ColorTheme.inputBg` - `ColorTheme.whiteSmoke` -> `ColorTheme.inputBg`
- `ColorTheme.whiteSnow` -> `ColorTheme.appBg` - `ColorTheme.whiteSnow` -> `ColorTheme.appBg`
- `ColorTheme.white` -> `ColorTheme.barsBg` - `ColorTheme.white` -> `ColorTheme.barsBg`
- `ColorTheme.blueAlice` -> `ColorTheme.linkBg` - `ColorTheme.blueAlice` -> `ColorTheme.linkBg`
- `ColorTheme.accentBlue` -> `ColorTheme.accentPrimary` - `ColorTheme.accentBlue` -> `ColorTheme.accentPrimary`
- `ColorTheme.accentRed` -> `ColorTheme.accentError` - `ColorTheme.accentRed` -> `ColorTheme.accentError`
- `ColorTheme.accentGreen` -> `ColorTheme.accentInfo` - `ColorTheme.accentGreen` -> `ColorTheme.accentInfo`
✅ Added ✅ Added
@@ -284,11 +290,11 @@ You can call `.copyWith` to customize just a subset of properties
🛑️ Breaking Changes from `2.0.0-nullsafety.7` 🛑️ Breaking Changes from `2.0.0-nullsafety.7`
- `ChannelListCore` options property is removed in favor of individual properties - `ChannelListCore` options property is removed in favor of individual properties
- `options.state` -> bool state - `options.state` -> bool state
- `options.watch` -> bool watch - `options.watch` -> bool watch
- `options.presence` -> bool presence - `options.presence` -> bool presence
- `UserListView` options property is removed in favor of individual properties - `UserListView` options property is removed in favor of individual properties
- `options.presence` -> bool presence - `options.presence` -> bool presence
- `MessageBuilder` and `ParentMessageBuilder` signature is now - `MessageBuilder` and `ParentMessageBuilder` signature is now
```dart ```dart
@@ -301,7 +307,7 @@ typedef MessageBuilder = Widget Function(
``` ```
> **_NOTE:_** The last parameter is the default `MessageWidget` > **_NOTE:_** The last parameter is the default `MessageWidget`
You can call `.copyWith` to customize just a subset of properties. > You can call `.copyWith` to customize just a subset of properties.
✅ Added ✅ Added