Merge branch 'fix/web-att-ws' into fix-web-attachments
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user