import { Component } from '@angular/core';
import { AlertController, NavController } from '@ionic/angular';
import * as Parse from "parse"
// 引用Router服务
@Component({
  selector: 'app-login',
  templateUrl: './login.page.html',
  styleUrls: ['./login.page.scss'],
})
export class LoginPage {

  username:string = ""
  password:string = ""
  constructor(
    // 新增：Router服务，用于路由跳转
    private navCtrl:NavController,
    private alertController:AlertController
  ) { }

  ngOnInit() {
  }

  async login(){
    let user
    try {
      user = await Parse.User.logIn(this.username,this.password)
    } catch (error:any) {
      let message:string = ""
      // 新增提示词详情，根据Parse.User.login方法返回的不同英文提示词，增加对应的中文内容转换
      if(error?.message.indexOf("is required")>-1){
        message = "必须输入账号或邮箱"
      }
      if(error?.message.indexOf("Invalid username")>-1){
        message = "账号或密码错误，请检查"
      }
      this.presentAlert({
        header:"登录失败",
        subHeader:"状态码:"+error.code,
        message:message || error.message
      })
    }
    console.log(user)
    if(user?.id){
      this.navCtrl.back()
    }
  }
  async register(){
    let user = new Parse.User()
    user.set("username",this.username)
    user.set("password",this.password)
    try {
        let result = await user.signUp();
        console.log(result)
        if(result?.id){
          this.navCtrl.back()
        }
        // Hooray! Let them use the app now.
    } catch (error:any) {
        // 新增提示词详情，根据Parse.User.signUp方法返回的不同英文提示词，增加对应的中文内容转换
        let message:string = ""
        if(error?.message.indexOf("already exists")>-1){
          message = "该账号已存在请修改后重试"
        }
        if(error?.message.indexOf("empty")>-1){
          message = "账号不能为空请输入后重试"
        }
        this.presentAlert({
          header:"注册失败",
          subHeader:"状态码:"+error.code,
          message:message || error.message
        })
    }
  }

  async presentAlert(options:{header:string,subHeader:string,message:string}) {
    const alert = await this.alertController.create({
      header: options?.header,
      subHeader: options?.subHeader,
      message: options?.message,
      buttons: ['好的'],
    });

    await alert.present();
  }

  /**
   * 返回上级页面函数
   * @desc
   */
  back(){
    this.navCtrl.back()
  }
}
