added scroll bars to search results (#1250)

pull/1544/head
ggurdin 11 months ago committed by GitHub
parent d3b405adc2
commit bf9e0aeba2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -116,25 +116,30 @@ class ChatListViewBody extends StatelessWidget {
curve: FluffyThemes.animationCurve, curve: FluffyThemes.animationCurve,
child: userSearchResult == null child: userSearchResult == null
? null ? null
: ListView.builder( // #Pangea
scrollDirection: Axis.horizontal, : UserSearchResultsList(
itemCount: userSearchResult.results.length, userSearchResult: userSearchResult,
itemBuilder: (context, i) => _SearchItem(
title:
userSearchResult.results[i].displayName ??
userSearchResult
.results[i].userId.localpart ??
L10n.of(context).unknownDevice,
avatar: userSearchResult.results[i].avatarUrl,
onPressed: () => showAdaptiveBottomSheet(
context: context,
builder: (c) => UserBottomSheet(
profile: userSearchResult.results[i],
outerContext: context,
),
),
),
), ),
// : ListView.builder(
// scrollDirection: Axis.horizontal,
// itemCount: userSearchResult.results.length,
// itemBuilder: (context, i) => _SearchItem(
// title:
// userSearchResult.results[i].displayName ??
// userSearchResult
// .results[i].userId.localpart ??
// L10n.of(context).unknownDevice,
// avatar: userSearchResult.results[i].avatarUrl,
// onPressed: () => showAdaptiveBottomSheet(
// context: context,
// builder: (c) => UserBottomSheet(
// profile: userSearchResult.results[i],
// outerContext: context,
// ),
// ),
// ),
// ),
// Pangea#
), ),
], ],
// #Pangea // #Pangea
@ -338,7 +343,10 @@ class ChatListViewBody extends StatelessWidget {
} }
} }
class PublicRoomsHorizontalList extends StatelessWidget { // #Pangea
// class PublicRoomsHorizontalList extends StatelessWidget {
class PublicRoomsHorizontalList extends StatefulWidget {
// Pangea#
const PublicRoomsHorizontalList({ const PublicRoomsHorizontalList({
super.key, super.key,
required this.publicRooms, required this.publicRooms,
@ -346,6 +354,23 @@ class PublicRoomsHorizontalList extends StatelessWidget {
final List<PublicRoomsChunk>? publicRooms; final List<PublicRoomsChunk>? publicRooms;
// #Pagngea
@override
PublicRoomsHorizontalListState createState() =>
PublicRoomsHorizontalListState();
}
class PublicRoomsHorizontalListState extends State<PublicRoomsHorizontalList> {
List<PublicRoomsChunk>? get publicRooms => widget.publicRooms;
final ScrollController _scrollController = ScrollController();
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
// Pangea#
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final publicRooms = this.publicRooms; final publicRooms = this.publicRooms;
@ -357,21 +382,29 @@ class PublicRoomsHorizontalList extends StatelessWidget {
curve: FluffyThemes.animationCurve, curve: FluffyThemes.animationCurve,
child: publicRooms == null child: publicRooms == null
? null ? null
: ListView.builder( :
scrollDirection: Axis.horizontal, // #Pangea
itemCount: publicRooms.length, Scrollbar(
itemBuilder: (context, i) => _SearchItem( thumbVisibility: true,
title: publicRooms[i].name ?? controller: _scrollController,
publicRooms[i].canonicalAlias?.localpart ?? child: ListView.builder(
L10n.of(context).group, controller: _scrollController,
avatar: publicRooms[i].avatarUrl, // Pangea#
onPressed: () => showAdaptiveBottomSheet( scrollDirection: Axis.horizontal,
context: context, itemCount: publicRooms.length,
builder: (c) => PublicRoomBottomSheet( itemBuilder: (context, i) => _SearchItem(
roomAlias: title: publicRooms[i].name ??
publicRooms[i].canonicalAlias ?? publicRooms[i].roomId, publicRooms[i].canonicalAlias?.localpart ??
outerContext: context, L10n.of(context).group,
chunk: publicRooms[i], avatar: publicRooms[i].avatarUrl,
onPressed: () => showAdaptiveBottomSheet(
context: context,
builder: (c) => PublicRoomBottomSheet(
roomAlias: publicRooms[i].canonicalAlias ??
publicRooms[i].roomId,
outerContext: context,
chunk: publicRooms[i],
),
), ),
), ),
), ),
@ -421,3 +454,52 @@ class _SearchItem extends StatelessWidget {
), ),
); );
} }
// #Pangea
class UserSearchResultsList extends StatefulWidget {
final SearchUserDirectoryResponse userSearchResult;
const UserSearchResultsList({
required this.userSearchResult,
super.key,
});
@override
UserSearchResultsListState createState() => UserSearchResultsListState();
}
class UserSearchResultsListState extends State<UserSearchResultsList> {
final ScrollController _scrollController = ScrollController();
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scrollbar(
thumbVisibility: true,
controller: _scrollController,
child: ListView.builder(
controller: _scrollController,
scrollDirection: Axis.horizontal,
itemCount: widget.userSearchResult.results.length,
itemBuilder: (context, i) => _SearchItem(
title: widget.userSearchResult.results[i].displayName ??
widget.userSearchResult.results[i].userId.localpart ??
L10n.of(context).unknownDevice,
avatar: widget.userSearchResult.results[i].avatarUrl,
onPressed: () => showAdaptiveBottomSheet(
context: context,
builder: (c) => UserBottomSheet(
profile: widget.userSearchResult.results[i],
outerContext: context,
),
),
),
),
);
}
}
// Pangea#

Loading…
Cancel
Save