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: // : ListView.builder(
userSearchResult.results[i].displayName ?? // scrollDirection: Axis.horizontal,
userSearchResult // itemCount: userSearchResult.results.length,
.results[i].userId.localpart ?? // itemBuilder: (context, i) => _SearchItem(
L10n.of(context).unknownDevice, // title:
avatar: userSearchResult.results[i].avatarUrl, // userSearchResult.results[i].displayName ??
onPressed: () => showAdaptiveBottomSheet( // userSearchResult
context: context, // .results[i].userId.localpart ??
builder: (c) => UserBottomSheet( // L10n.of(context).unknownDevice,
profile: userSearchResult.results[i], // avatar: userSearchResult.results[i].avatarUrl,
outerContext: context, // 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,7 +382,14 @@ class PublicRoomsHorizontalList extends StatelessWidget {
curve: FluffyThemes.animationCurve, curve: FluffyThemes.animationCurve,
child: publicRooms == null child: publicRooms == null
? null ? null
: ListView.builder( :
// #Pangea
Scrollbar(
thumbVisibility: true,
controller: _scrollController,
child: ListView.builder(
controller: _scrollController,
// Pangea#
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
itemCount: publicRooms.length, itemCount: publicRooms.length,
itemBuilder: (context, i) => _SearchItem( itemBuilder: (context, i) => _SearchItem(
@ -368,14 +400,15 @@ class PublicRoomsHorizontalList extends StatelessWidget {
onPressed: () => showAdaptiveBottomSheet( onPressed: () => showAdaptiveBottomSheet(
context: context, context: context,
builder: (c) => PublicRoomBottomSheet( builder: (c) => PublicRoomBottomSheet(
roomAlias: roomAlias: publicRooms[i].canonicalAlias ??
publicRooms[i].canonicalAlias ?? publicRooms[i].roomId, publicRooms[i].roomId,
outerContext: context, outerContext: context,
chunk: publicRooms[i], 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