Merge pull request #44 from GetStream/new-filter

refactor: added filters to MessageListView
This commit is contained in:
Salvatore Giordano
2021-07-28 09:48:54 +02:00
committed by GitHub
4 changed files with 52 additions and 8 deletions
@@ -113,6 +113,7 @@ class _ChannelPageState extends State<ChannelPage> {
initialAlignment: widget.initialAlignment,
highlightInitialMessage: widget.highlightInitialMessage,
onMessageSwiped: _reply,
messageFilter: defaultFilter,
messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith(
onReplyTap: _reply,
@@ -135,6 +136,9 @@ class _ChannelPageState extends State<ChannelPage> {
),
);
},
deletedBottomRowBuilder: (context, message) {
return const VisibleFootnote();
},
);
},
threadBuilder: (_, parentMessage) {
@@ -185,4 +189,12 @@ class _ChannelPageState extends State<ChannelPage> {
),
);
}
bool defaultFilter(Message m) {
var _currentUser = StreamChat.of(context).currentUser;
final isMyMessage = m.user?.id == _currentUser?.id;
final isDeletedOrShadowed = m.isDeleted == true || m.shadowed == true;
if (isDeletedOrShadowed && !isMyMessage) return false;
return true;
}
}
@@ -268,9 +268,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
),
Container(
height: 1.0,
color: StreamChatTheme.of(context)
.colorTheme
.disabled,
color: StreamChatTheme.of(context).colorTheme.disabled,
),
],
),
@@ -992,7 +990,8 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
context,
StreamSvgIcon.userRemove(
color: StreamChatTheme.of(context)
.colorTheme.accentError,
.colorTheme
.accentError,
size: 24.0,
),
'Remove From Group', () async {
@@ -1010,8 +1009,8 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
}
Navigator.pop(context);
},
color: StreamChatTheme.of(context)
.colorTheme.accentError),
color:
StreamChatTheme.of(context).colorTheme.accentError),
_buildModalListTile(
context,
StreamSvgIcon.closeSmall(
@@ -49,9 +49,13 @@ class _ThreadPageState extends State<ThreadPage> {
initialScrollIndex: widget.initialScrollIndex,
initialAlignment: widget.initialAlignment,
onMessageSwiped: _reply,
messageFilter: defaultFilter,
messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith(
onReplyTap: _reply,
deletedBottomRowBuilder: (context, message) {
return const VisibleFootnote();
},
);
},
pinPermissions: ['owner', 'admin', 'member'],
@@ -71,4 +75,12 @@ class _ThreadPageState extends State<ThreadPage> {
),
);
}
bool defaultFilter(Message m) {
var _currentUser = StreamChat.of(context).currentUser;
final isMyMessage = m.user?.id == _currentUser?.id;
final isDeletedOrShadowed = m.isDeleted == true || m.shadowed == true;
if (isDeletedOrShadowed && !isMyMessage) return false;
return true;
}
}
+23 -2
View File
@@ -10,8 +10,16 @@ dependencies:
flutter_app_badger: ^1.2.0
flutter:
sdk: flutter
stream_chat_flutter: ^2.0.0
stream_chat_persistence: ^2.0.0
stream_chat_flutter:
git:
url: https://github.com/GetStream/stream-chat-flutter.git
ref: develop
path: packages/stream_chat_flutter
stream_chat_persistence:
git:
url: https://github.com/GetStream/stream-chat-flutter.git
ref: develop
path: packages/stream_chat_persistence
flutter_local_notifications: ^5.0.0+4
flutter_svg: ^0.22.0
flutter_secure_storage: ^4.2.0
@@ -24,6 +32,19 @@ dependencies:
dev_dependencies:
flutter_launcher_icons: ^0.9.0
test: any
dependency_overrides:
stream_chat:
git:
url: https://github.com/GetStream/stream-chat-flutter.git
ref: develop
path: packages/stream_chat
stream_chat_flutter_core:
git:
url: https://github.com/GetStream/stream-chat-flutter.git
ref: develop
path: packages/stream_chat_flutter_core
flutter:
assets:
- assets/