Merge branch 'develop' into delete_message_fix

This commit is contained in:
Salvatore Giordano
2021-07-27 09:32:37 +02:00
committed by GitHub
56 changed files with 245 additions and 174 deletions
@@ -1,10 +1,14 @@
## Upcoming
🛑️ Breaking Changes from `2.0.0`
- Changed default message filter of `MessageListCore`
✅ Added
- Added `MessageListCore.paginationLimit`
🔄 Changed
- Changed default message filter of `MessageListCore`
- `StreamChatCore.of(context).user` is now deprecated in favor of `StreamChatCore.of(context).currentUser`.
- `StreamChatCore.of(context).userStream` is now deprecated in favor of `StreamChatCore.of(context).currentUserStream`.
## 2.0.0
@@ -87,7 +87,7 @@ class HomeScreen extends StatelessWidget {
filter: Filter.and([
Filter.equal('type', 'messaging'),
Filter.in_('members', [
StreamChatCore.of(context).user!.id,
StreamChatCore.of(context).currentUser!.id,
])
]),
emptyBuilder: (BuildContext context) => const Center(
@@ -336,7 +336,7 @@ class _MessageScreenState extends State<MessageScreen> {
/// below, we add two simple extensions to the [StreamChatClient] and [Channel].
extension on StreamChatClient {
/// Fetches the current user id.
String get uid => state.user!.id;
String get uid => state.currentUser!.id;
}
extension on Channel {
@@ -116,7 +116,7 @@ class MessageListCoreState extends State<MessageListCore> {
bool get _isThreadConversation => widget.parentMessage != null;
OwnUser? get _currentUser => _streamChannel!.channel.client.state.user;
OwnUser? get _currentUser => _streamChannel!.channel.client.state.currentUser;
var _messages = <Message>[];
@@ -97,11 +97,25 @@ class StreamChatCoreState extends State<StreamChatCore>
@override
Widget build(BuildContext context) => widget.child;
// coverage:ignore-start
/// The current user
User? get user => client.state.user;
@Deprecated('Use `.currentUser` instead, Will be removed in future releases')
User? get user => client.state.currentUser;
/// The current user as a stream
Stream<User?> get userStream => client.state.userStream;
@Deprecated(
'Use `.currentUserStream` instead, Will be removed in future releases',
)
Stream<User?> get userStream => client.state.currentUserStream;
// coverage:ignore-end
/// The current user
User? get currentUser => client.state.currentUser;
/// The current user as a stream
Stream<User?> get currentUserStream => client.state.currentUserStream;
StreamSubscription<ConnectivityResult>? _connectivitySubscription;
@@ -126,7 +140,7 @@ class StreamChatCoreState extends State<StreamChatCore>
if (!_isInForeground) return;
if (_isConnectionAvailable) {
if (client.wsConnectionStatus == ConnectionStatus.disconnected &&
user != null) {
currentUser != null) {
client.openConnection();
}
} else {
@@ -163,7 +177,7 @@ class StreamChatCoreState extends State<StreamChatCore>
AppLifecycleState.resumed,
AppLifecycleState.inactive,
].contains(state);
if (user != null) {
if (currentUser != null) {
if (_isInForeground) {
_onForeground();
} else {
@@ -18,10 +18,10 @@ class MockClient extends Mock implements StreamChatClient {
}
class MockClientState extends Mock implements ClientState {
OwnUser? _user;
OwnUser? _currentUser;
@override
OwnUser get user => _user ??= OwnUser(
OwnUser get currentUser => _currentUser ??= OwnUser(
id: 'testUserId',
role: 'admin',
createdAt: DateTime.now(),
@@ -431,7 +431,7 @@ void main() {
);
testWidgets(
'streamChatCoreState.userStream should emit all the user events '
'streamChatCoreState.currentUserStream should emit all the user events '
'provided by client',
(tester) async {
await tester.runAsync(() async {
@@ -451,7 +451,7 @@ void main() {
expect(find.byKey(streamChatCoreKey), findsOneWidget);
expect(find.byKey(childKey), findsOneWidget);
when(() => mockClient.state.userStream)
when(() => mockClient.state.currentUserStream)
.thenAnswer((_) => userController.stream);
final streamChatCoreState = tester.state<StreamChatCoreState>(
@@ -462,7 +462,7 @@ void main() {
userController.add(ownUser);
await expectLater(
streamChatCoreState.userStream,
streamChatCoreState.currentUserStream,
emits(ownUser),
);