@page "/rooms/create" @rendermode InteractiveServer Create Room

Create Room

Create a new room and optionally a default subroom.

Room Details
SubRoom
@if (createSubRoom) {
}
Platform Support
Cancel @if (!string.IsNullOrEmpty(message)) {
@message
} @if (createdRoom != null) {
Room created! Edit Room #@createdRoom.RoomId
}
@code { [Inject] private HttpClient Http { get; set; } = default!; private bool creating; private string? message; private Room? createdRoom; private int roomId; private string name = ""; private string description = ""; private int creatorAccountId; private string imageName = ""; private int accessibility; private bool createSubRoom = true; private string subRoomName = ""; private int maxPlayers = 16; private bool supportsVRLow = true; private bool supportsQuest2 = true; private bool supportsMobile = true; private bool supportsScreens = true; private bool supportsWalkVR = true; private bool supportsTeleportVR = true; private bool supportsJuniors = true; private async Task CreateRoom() { creating = true; message = null; try { var payload = new { roomId = roomId > 0 ? roomId : 0, name, description, creatorAccountId, imageName, accessibility, createSubRoom, subRoomName = createSubRoom ? (string.IsNullOrWhiteSpace(subRoomName) ? name : subRoomName) : "", maxPlayers }; var response = await Http.PostAsJsonAsync("/admin/api/rooms", payload); response.EnsureSuccessStatusCode(); createdRoom = await response.Content.ReadFromJsonAsync(); message = $"Room '{createdRoom?.Name}' created successfully!"; } catch (Exception ex) { message = $"Error: {ex.Message}"; } finally { creating = false; } } }