accessiblity fixes

This commit is contained in:
Henry Hiles 2026-03-01 14:40:14 -05:00
commit b594f5a1d1
No known key found for this signature in database
11 changed files with 147 additions and 118 deletions

View file

@ -2,7 +2,6 @@ import "package:flutter/material.dart";
import "package:hooks_riverpod/hooks_riverpod.dart";
import "package:nexus/controllers/members_controller.dart";
import "package:nexus/controllers/rooms_controller.dart";
import "package:nexus/helpers/extensions/better_when.dart";
import "package:nexus/models/room.dart";
import "package:nexus/widgets/avatar_or_hash.dart";
import "package:nexus/widgets/loading.dart";
@ -32,60 +31,55 @@ class MentionOverlay extends ConsumerWidget {
color: Theme.of(context).colorScheme.surfaceContainerHigh,
padding: EdgeInsets.all(8),
child: switch (triggerCharacter) {
"@" =>
ref
.watch(MembersController.provider(room))
.betterWhen(
data: (members) => ListView(
children:
(query.isEmpty
? members
: members.where(
(member) =>
member.stateKey
?.toLowerCase()
.contains(
query.toLowerCase(),
) ==
true ||
(member.content["displayname"]
as String?)
?.toLowerCase()
.contains(
query.toLowerCase(),
) ==
true,
))
.map(
(member) => ListTile(
leading: AvatarOrHash(
Uri.tryParse(
member.content["avatar_url"] ?? "",
),
member.content["displayname"] ?? "",
),
title: Text(
member.content["displayname"] as String? ??
member.stateKey ??
"Unknown User",
),
subtitle: member.stateKey != null
? Text(member.stateKey!)
: null,
onTap: () => addTag(
id: "[@${member.content["displayname"]}](https://matrix.to/#/${member.stateKey})",
name:
member.stateKey
?.substring(1)
.split(":")
.first ??
"Unknown User",
),
"@" => Consumer(
builder: (_, ref, _) {
final members = ref.watch(MembersController.provider(room));
return ListView(
children:
(query.isEmpty
? members
: members.where(
(member) =>
member.stateKey?.toLowerCase().contains(
query.toLowerCase(),
) ==
true ||
(member.content["displayname"] as String?)
?.toLowerCase()
.contains(query.toLowerCase()) ==
true,
))
.map(
(member) => ListTile(
leading: AvatarOrHash(
Uri.tryParse(
member.content["avatar_url"] ?? "",
),
)
.toList(),
),
),
member.content["displayname"] ?? "",
),
title: Text(
member.content["displayname"] as String? ??
member.stateKey ??
"Unknown User",
),
subtitle: member.stateKey != null
? Text(member.stateKey!)
: null,
onTap: () => addTag(
id: "[@${member.content["displayname"]}](https://matrix.to/#/${member.stateKey})",
name:
member.stateKey
?.substring(1)
.split(":")
.first ??
"Unknown User",
),
),
)
.toList(),
);
},
),
"#" => ListView(
children:
(query.isEmpty