Merge pull request #75 from GetStream/develop

Develop
This commit is contained in:
Salvatore Giordano
2020-08-25 15:11:19 +02:00
committed by GitHub
3 changed files with 107 additions and 82 deletions
+21 -7
View File
@@ -60,6 +60,7 @@ class ChannelListView extends StatefulWidget {
this.channelPreviewBuilder,
this.errorBuilder,
this.onImageTap,
this.pullToRefresh = true,
}) : super(key: key);
/// The builder that will be used in case of error
@@ -105,6 +106,9 @@ class ChannelListView extends StatefulWidget {
/// The function called when the image is tapped
final Function(Channel) onImageTap;
/// Set it to false to disable the pull-to-refresh widget
final bool pullToRefresh;
@override
_ChannelListViewState createState() => _ChannelListViewState();
}
@@ -115,19 +119,30 @@ class _ChannelListViewState extends State<ChannelListView>
@override
Widget build(BuildContext context) {
final channelsProvider = ChannelsBloc.of(context);
final channelsBloc = ChannelsBloc.of(context);
if (!widget.pullToRefresh) {
return _buildListView(channelsBloc);
}
return RefreshIndicator(
onRefresh: () async {
return channelsProvider.queryChannels(
return channelsBloc.queryChannels(
filter: widget.filter,
sortOptions: widget.sort,
paginationParams: widget.pagination,
options: widget.options,
);
},
child: StreamBuilder<List<Channel>>(
stream: channelsProvider.channelsStream,
child: _buildListView(channelsBloc),
);
}
StreamBuilder<List<Channel>> _buildListView(
ChannelsBlocState channelsBlocState,
) {
return StreamBuilder<List<Channel>>(
stream: channelsBlocState.channelsStream,
builder: (context, snapshot) {
if (snapshot.hasError) {
if (snapshot.error is Error) {
@@ -175,7 +190,7 @@ class _ChannelListViewState extends State<ChannelListView>
),
FlatButton(
onPressed: () {
channelsProvider.queryChannels(
channelsBlocState.queryChannels(
filter: widget.filter,
sortOptions: widget.sort,
paginationParams: widget.pagination,
@@ -212,8 +227,7 @@ class _ChannelListViewState extends State<ChannelListView>
},
),
);
}),
);
});
}
Widget _itemBuilder(context, int i, List<Channel> channels) {
+6
View File
@@ -11,10 +11,12 @@ class MessageText extends StatelessWidget {
@required this.message,
@required this.messageTheme,
this.onMentionTap,
this.onLinkTap,
}) : super(key: key);
final Message message;
final void Function(User) onMentionTap;
final void Function(String) onLinkTap;
final MessageTheme messageTheme;
@override
@@ -34,9 +36,13 @@ class MessageText extends StatelessWidget {
} else {
print('tap on ${mentionedUser.name}');
}
} else {
if (onLinkTap != null) {
onLinkTap(link);
} else {
launchURL(context, link);
}
}
},
styleSheet: MarkdownStyleSheet.fromTheme(
Theme.of(context).copyWith(
+5
View File
@@ -97,6 +97,9 @@ class MessageWidget extends StatefulWidget {
/// The function called when tapping on UserAvatar
final void Function(User) onUserAvatarTap;
/// The function called when tapping on a link
final void Function(String) onLinkTap;
final List<Read> readList;
/// If true show the users username next to the timestamp of the message
@@ -128,6 +131,7 @@ class MessageWidget extends StatefulWidget {
this.showDeleteMessage = true,
this.showEditMessage = true,
this.onUserAvatarTap,
this.onLinkTap,
this.onMessageActions,
this.editMessageInputBuilder,
this.textBuilder,
@@ -764,6 +768,7 @@ class _MessageWidgetState extends State<MessageWidget> {
return widget.textBuilder != null
? widget.textBuilder(context, widget.message)
: MessageText(
onLinkTap: widget.onLinkTap,
message: widget.message,
onMentionTap: widget.onMentionTap,
messageTheme: widget.messageTheme,