feat: Open alias in discover page
This commit is contained in:
parent
bd6f28766f
commit
acd827dfaa
3 changed files with 47 additions and 33 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue