import {useEffect} from "react";
import Taro from '@tarojs/taro'

const WxAddress = () => {
  /**
   * 从微信API获取用户收货地址
   * 调用微信原生地址选择界面，获取成功后跳转到“新增收货地址”页面，让用户选择定位后再保存
   */
  const getWeChatAddress = () => {
    Taro.chooseAddress()
      .then(async res => {
        // 仅填充微信地址信息，不要用“当前定位”覆盖经纬度（会造成经纬度与地址不匹配）。
        // 选择后跳转到“新增/编辑收货地址”页面，让用户手动选择地图定位后再保存。
        const addressDraft = {
          name: res.userName,
          phone: res.telNumber,
          country: res.nationalCode || '中国',
          province: res.provinceName,
          city: res.cityName,
          region: res.countyName,
          address: res.detailInfo,
          isDefault: false,
        }
        Taro.setStorageSync('WxAddressDraft', addressDraft)
        // 用 redirectTo 替换当前页面，避免保存后 navigateBack 回到空白的 wxAddress 页面。
        await Taro.redirectTo({ url: '/user/address/add?fromWx=1&skipDefaultCheck=1' })
      })
      .catch(err => {
        console.error('获取微信地址失败:', err)
        // 用户取消选择地址：直接返回上一页
        if (String(err?.errMsg || '').includes('cancel')) {
          setTimeout(() => Taro.navigateBack(), 200)
          return
        }
        // 处理用户拒绝授权的情况
        if (String(err?.errMsg || '').includes('auth deny')) {
          Taro.showModal({
            title: '授权失败',
            content: '请在设置中允许获取地址权限',
            showCancel: false
          })
          setTimeout(() => Taro.navigateBack(), 300)
          return
        }

        Taro.showToast({ title: '获取微信地址失败', icon: 'none' })
        setTimeout(() => Taro.navigateBack(), 300)
      })
  }

  useEffect(() => {
    getWeChatAddress()
  }, []);

  return (
    <>
    </>
  );
};

export default WxAddress;
