roomVisibilityProvider top-level property
final
gives current visibility state of space, return empty if no space is found
Implementation
final roomVisibilityProvider = FutureProvider.family
.autoDispose<RoomVisibility?, String>((ref, roomId) async {
final room = await ref.watch(maybeRoomProvider(roomId).future);
if (room == null) {
return null;
}
final joinRule = room.joinRuleStr();
switch (joinRule) {
case 'public':
return RoomVisibility.Public;
case 'restricted':
return RoomVisibility.SpaceVisible;
case 'invite':
return RoomVisibility.Private;
default:
_log.warning('Unsupported joinRule for $roomId: $joinRule');
throw 'Unsupported joinRule $joinRule';
}
});