fix image group navigation

This commit is contained in:
Salvatore Giordano
2021-05-17 14:32:23 +02:00
parent 9ac200c04d
commit 7cb3d449c2
3 changed files with 11 additions and 5 deletions
@@ -12,12 +12,16 @@ class ImageGroup extends StatelessWidget {
required this.message,
required this.messageTheme,
required this.size,
this.onReturnAction,
this.onShowMessage,
}) : super(key: key);
/// List of attachments to show
final List<Attachment> images;
/// Callback when attachment is returned to from other screens
final ValueChanged<ReturnActionType>? onReturnAction;
/// Message which images are attached to
final Message message;
@@ -111,10 +115,10 @@ class ImageGroup extends StatelessWidget {
void _onTap(
BuildContext context,
int index,
) {
) async {
final channel = StreamChannel.of(context).channel;
Navigator.push(
final res = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => StreamChannel(
@@ -129,6 +133,7 @@ class ImageGroup extends StatelessWidget {
),
),
);
if (res != null) onReturnAction?.call(res);
}
Widget _buildImage(BuildContext context, int index) => ImageAttachment(
@@ -270,7 +270,7 @@ class MessageListView extends StatefulWidget {
class _MessageListViewState extends State<MessageListView> {
ItemScrollController? _scrollController;
Function? _onThreadTap;
void Function(Message)? _onThreadTap;
bool _showScrollToBottom = false;
late final ItemPositionsListener _itemPositionListener;
int? _messageListLength;
@@ -814,7 +814,7 @@ class _MessageListViewState extends State<MessageListView> {
showUsername: !isMyMessage,
padding: const EdgeInsets.all(8),
showSendingIndicator: false,
onThreadTap: _onThreadTap as void Function(Message)?,
onThreadTap: _onThreadTap,
borderRadiusGeometry: const BorderRadius.only(
topLeft: Radius.circular(16),
bottomLeft: Radius.circular(2),
@@ -976,7 +976,7 @@ class _MessageListViewState extends State<MessageListView> {
showThreadReplyMessage: !isThreadMessage,
showFlagButton: !isMyMessage,
borderSide: borderSide,
onThreadTap: _onThreadTap as void Function(Message)?,
onThreadTap: _onThreadTap,
onReplyTap: widget.onReplyTap,
attachmentBorderRadiusGeometry: BorderRadius.only(
topLeft: Radius.circular(attachmentBorderRadius),
@@ -126,6 +126,7 @@ class MessageWidget extends StatefulWidget {
message: message,
messageTheme: messageTheme,
onShowMessage: onShowMessage,
onReturnAction: onReturnAction,
),
),
border,