fix deleted message preview
This commit is contained in:
@@ -96,12 +96,16 @@ class ChannelPreview extends StatelessWidget {
|
|||||||
Flexible(child: _buildSubtitle(context)),
|
Flexible(child: _buildSubtitle(context)),
|
||||||
Builder(
|
Builder(
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
if (channel.state.lastMessage?.user?.id ==
|
final lastMessage = channel.state.messages.lastWhere(
|
||||||
|
(m) => !m.isDeleted && m.shadowed != true,
|
||||||
|
orElse: () => null,
|
||||||
|
);
|
||||||
|
if (lastMessage?.user?.id ==
|
||||||
StreamChat.of(context).user.id) {
|
StreamChat.of(context).user.id) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.only(right: 4.0),
|
padding: const EdgeInsets.only(right: 4.0),
|
||||||
child: SendingIndicator(
|
child: SendingIndicator(
|
||||||
message: channel.state.lastMessage,
|
message: lastMessage,
|
||||||
size: StreamChatTheme.of(context)
|
size: StreamChatTheme.of(context)
|
||||||
.channelPreviewTheme
|
.channelPreviewTheme
|
||||||
.indicatorIconSize,
|
.indicatorIconSize,
|
||||||
@@ -110,8 +114,7 @@ class ChannelPreview extends StatelessWidget {
|
|||||||
element.user.id !=
|
element.user.id !=
|
||||||
channel.client.state.user.id)
|
channel.client.state.user.id)
|
||||||
?.where((element) => element.lastRead
|
?.where((element) => element.lastRead
|
||||||
.isAfter(channel
|
.isAfter(lastMessage.createdAt))
|
||||||
.state.lastMessage.createdAt))
|
|
||||||
?.isNotEmpty ==
|
?.isNotEmpty ==
|
||||||
true,
|
true,
|
||||||
),
|
),
|
||||||
@@ -201,16 +204,15 @@ class ChannelPreview extends StatelessWidget {
|
|||||||
stream: channel.state.messagesStream,
|
stream: channel.state.messagesStream,
|
||||||
initialData: channel.state.messages,
|
initialData: channel.state.messages,
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
final lastMessage = snapshot.data
|
final lastMessage = snapshot.data?.lastWhere(
|
||||||
?.lastWhere((m) => m.shadowed != true, orElse: () => null);
|
(m) => m.shadowed != true && !m.isDeleted,
|
||||||
|
orElse: () => null);
|
||||||
if (lastMessage == null) {
|
if (lastMessage == null) {
|
||||||
return SizedBox();
|
return SizedBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
var text = lastMessage.text;
|
var text = lastMessage.text;
|
||||||
if (lastMessage.isDeleted) {
|
if (lastMessage.attachments != null) {
|
||||||
text = 'This message was deleted.';
|
|
||||||
} else if (lastMessage.attachments != null) {
|
|
||||||
final parts = <String>[
|
final parts = <String>[
|
||||||
...lastMessage.attachments.map((e) {
|
...lastMessage.attachments.map((e) {
|
||||||
if (e.type == 'image') {
|
if (e.type == 'image') {
|
||||||
|
|||||||
Reference in New Issue
Block a user