extends HBoxContainer ## FriendRow — Single row in the friends list inside SocialPanel. @onready var _name_label: Label = %NameLabel @onready var _state_label: Label = %StateLabel @onready var _dm_btn: Button = %DMBtn @onready var _accept_btn: Button = %AcceptBtn @onready var _decline_btn: Button = %DeclineBtn @onready var _remove_btn: Button = %RemoveBtn var _user_id: String var _username: String var _panel: Control # reference to SocialPanel for opening DM func setup(uid: String, uname: String, state: int, panel: Control) -> void: _user_id = uid _username = uname _panel = panel _name_label.text = uname match state: FriendManager.STATE_FRIEND: _dm_btn.visible = true _remove_btn.visible = true _dm_btn.pressed.connect(func(): panel.call("_open_dm", uid, uname)) _remove_btn.pressed.connect(func(): FriendManager.remove_friend(uid)) FriendManager.STATE_INVITE_OUT: _state_label.text = "(invite sent)" _state_label.visible = true FriendManager.STATE_INVITE_IN: _accept_btn.visible = true _decline_btn.visible = true _accept_btn.pressed.connect(func(): FriendManager.add_friend_by_id(uid)) _decline_btn.pressed.connect(func(): FriendManager.remove_friend(uid))