navigateToRoomOrAskToJoin function

Future<void> navigateToRoomOrAskToJoin(
  1. dynamic context,
  2. dynamic ref,
  3. String roomId
)

Implementation

Future<void> navigateToRoomOrAskToJoin(
  BuildContext context,
  WidgetRef ref,
  String roomId,
) async {
  ///Get room from roomId
  final room = await ref.read(maybeRoomProvider(roomId).future);
  if (!context.mounted) return;

  /// Navigate to Room is already joined
  if (room != null && room.isJoined()) {
    //Navigate to Space
    if (room.isSpace()) {
      goToSpace(context, roomId);
    }
    //Navigate to Chat
    else {
      goToChat(context, roomId);
    }
  }

  /// Ask to join room if not yet joined
  else {
    askToJoinRoom(context, ref, roomId);
  }
}