roomVisibilityProvider top-level property

dynamic roomVisibilityProvider
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';
  }
});