// component/auth/auth.js
const api = require('../../config/api')
const util = require('../../utils/util.js');
import {getSubOpen} from './api'

Component({

  /**
   * 页面的初始数据
   */
  data: {
    show: false,
    loginNew: !!wx.getUserProfile,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  
  attached() {
    this.callback = () => {
      this.setData({show: !getApp().globalData.loginProps.isLogin})

      // let pages = getCurrentPages()
      // let currPage = pages[pages.length - 1].route
      // if (currPage === 'pages/discover/discover') {
      //   this.setData({bottom: '50px'})
      // } else {
      //   this.setData({bottom: 0})
      // }
    }
    this.callback()
    getApp().addLoginListener(this.callback)
    getSubOpen()
  },
  detached() {
    getApp().removeLoginListener(this.callback)
  },
  methods: {
    quitHandle: function() {
      getApp().setLoginProps(true)
    },
    getCode: function() {
      return new Promise(r => {
        wx.login({
          success: function(res) {
            if (res.code) {
              r(res.code)
            }
          }
        });
      })
    },
    authLogin() {
      this.triggerEvent('login')
    },
    bindGetUserInfo: async function(e) {
      
      if (this.data.loginNew) {
        let info = await new Promise(resolve => {
          wx.getUserProfile({
            desc: '获取用户昵称头像用作共享',
            success: resolve,
            fail(e) {
              console.error(e)
            }
          })
        })
        e.detail = info

        console.log('-----------------', e)
      } 
      
      
      let code = await this.getCode()
      //登录远程服务器
      util.request(api.AuthLoginByWeixin, {
        code: code,
        userInfo: e.detail
      }, 'POST', 'application/json').then(res => {
        if (res.errno === 0) {
          //存储用户信息
          res.data.userInfo.userId = res.data.userId
          res.data.userInfo.sessionKey = res.data.sessionKey
          wx.setStorageSync('userInfo', res.data.userInfo);
          wx.setStorageSync('token', res.data.token);
          wx.setStorageSync('userId', res.data.userId);
          wx.setStorageSync('isLogin', true);
          getApp().setLoginProps(true)
          this.authLogin()
          getSubOpen()
        } else {
          // util.showErrorToast(res.errmsg)
          // wx.showModal({
          //   title: '提示',
          //   content: res.errmsg,
          //   showCancel: false
          // });
        }
      });
    },
  }
})