chore: use knock reason to restrict which spaces analytics request indicator is shown in (#5195)

This commit is contained in:
ggurdin 2026-01-14 13:56:42 -05:00 committed by GitHub
parent a96e767595
commit 3be47ab6b0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 4 deletions

View file

@ -54,12 +54,15 @@ class AnalyticsRequestIndicatorState extends State<AnalyticsRequestIndicator> {
.where((u) => u.powerLevel >= 100);
for (final analyticsRoom in widget.room.client.allMyAnalyticsRooms) {
final knocking =
await analyticsRoom.requestParticipants([Membership.knock]);
if (knocking.isEmpty) continue;
final knocking = await analyticsRoom.requestParticipants(
[Membership.knock],
);
final knockingSpace =
knocking.where((u) => u.content['reason'] == widget.room.id).toList();
if (knockingSpace.isEmpty) continue;
for (final admin in admins) {
if (knocking.any((u) => u.id == admin.id)) {
if (knockingSpace.any((u) => u.id == admin.id)) {
_knockingAdmins.putIfAbsent(admin, () => []).add(analyticsRoom);
}
}

View file

@ -296,6 +296,7 @@ class SpaceAnalyticsState extends State<SpaceAnalytics> {
(child) => child.roomId == roomId,
)
?.via,
reason: widget.roomId,
);
status = RequestStatus.requested;
} catch (e) {