import { tgxUIAlert, tgxUIController, tgxUIWaiting, tgx_class } from "../../core_tgx/tgx";
import { GameUILayers } from "../../scripts/GameUILayers";
import { ModuleDef } from "../../scripts/ModuleDef";
import { UserMgr } from "../../module_basic/scripts/UserMgr";
import { Layout_UIEnterRoom } from "./Layout_UIEnterRoom";

@tgx_class(ModuleDef.BASIC)
export class UIEnterRoom extends tgxUIController {
    constructor() {
        super('ui_enter_room/ui_enter_room', GameUILayers.POPUP, Layout_UIEnterRoom);
    }

    protected onCreated(): void {
        let layout = this.layout as Layout_UIEnterRoom;
        this.onButtonEvent(layout.btnClose, () => {
            this.close();
        });

        this.onButtonEvent(layout.btnEnter, this.onBtnCreateClicked, this);
    }

    async onBtnCreateClicked() {
        let layout = this.layout as Layout_UIEnterRoom;

        if (layout.edtId.string.length > 8) {
            tgxUIAlert.show('ID 最多 8 个数字');
            return;
        }

        if (layout.edtPassword.string.length > 16) {
            tgxUIAlert.show('密码最多16个字符');
            return;
        }

        tgxUIWaiting.show();

        let roomId = layout.edtId.string;
        let password = layout.edtPassword.string;
        
        let ret = await UserMgr.inst.doTryEnterRoom(roomId,password);

        tgxUIWaiting.hide();
        if(!ret.isSucc){
            tgxUIAlert.show("进入失败");
        }
    }

    setFixedId(id:string){
        let layout = this.layout as Layout_UIEnterRoom;
        layout.edtId.string = id;
        layout.edtId.enabled = false;
    }
}