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