talkpal-frontend/scenes/reservation/room_selection.gd

40 lines
848 B
GDScript

extends Control
signal room_selected(title: String, id: String)
@onready var _main: Main = get_tree().get_current_scene()
@onready var _rooms_menu := $RoomsMenu
var _rooms : Array[RoomEntity] = []
func _ready():
_connect_signals()
await get_tree().create_timer(0.1, false).timeout
_load_rooms()
func _load_rooms():
var room_repo = _main.get_room_repo()
if room_repo.get_selected_room():
return
_rooms_menu.clear()
var rooms = await room_repo.list_rooms()
for room in rooms:
_rooms.append(room)
_rooms_menu.add_item(room.title)
if len(rooms) < 0:
print('Not enough rooms')
func _connect_signals():
_rooms_menu.item_clicked.connect(_on_room_selected)
func _on_room_selected(idx, text):
room_selected.emit(_rooms[idx].title, _rooms[idx].id)
_main.go_to_previous_page(true)
func update():
_rooms_menu.deselect_all()