feat: Open alias in discover page

This commit is contained in:
Christian Pauly 2020-12-20 16:53:37 +01:00
commit acd827dfaa
3 changed files with 47 additions and 33 deletions

View file

@ -15,16 +15,22 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'empty_page.dart';
class DiscoverView extends StatelessWidget {
final String alias;
const DiscoverView({Key key, this.alias}) : super(key: key);
@override
Widget build(BuildContext context) {
return AdaptivePageLayout(
firstScaffold: DiscoverPage(),
firstScaffold: DiscoverPage(alias: alias),
secondScaffold: EmptyPage(),
);
}
}
class DiscoverPage extends StatefulWidget {
final String alias;
const DiscoverPage({Key key, this.alias}) : super(key: key);
@override
_DiscoverPageState createState() => _DiscoverPageState();
}
@ -114,6 +120,7 @@ class _DiscoverPageState extends State<DiscoverPage> {
@override
void initState() {
_genericSearchTerm = widget.alias;
_scrollController.addListener(() async {
if (_scrollController.position.pixels > 0 && _scrolledToTop) {
setState(() => _scrolledToTop = false);
@ -126,8 +133,11 @@ class _DiscoverPageState extends State<DiscoverPage> {
@override
Widget build(BuildContext context) {
final server = _genericSearchTerm?.isValidMatrixId ?? false
? _genericSearchTerm.domain
: _server;
_publicRoomsResponse ??= Matrix.of(context).client.searchPublicRooms(
server: _server,
server: server,
genericSearchTerm: _genericSearchTerm,
);
return Scaffold(
@ -149,7 +159,7 @@ class _DiscoverPageState extends State<DiscoverPage> {
if (snapshot.hasError) {
return Center(child: Text(snapshot.error.toString()));
}
if (!snapshot.hasData) {
if (snapshot.connectionState != ConnectionState.done) {
return Center(child: CircularProgressIndicator());
}
final publicRoomsResponse = snapshot.data;