import { defaultLang } from '@/locales';
import WujieVue from 'wujie-vue3';

// 基座应用数据处理
export const baseInfoHandle = baseInfo => {
  setBaseInfo(baseInfo);
  // 监听基座应用传参的变化
  const { bus } = WujieVue;
  bus.$on('appPropsChange', () => {
    setBaseInfo(baseInfo);
  });
};

// 从主应用中传穿过来的参数
const setBaseInfo = baseInfo => {
  try {
    if (window.$wujie) {
      const baseParams = window.$wujie?.props;
      // 需要单独处理的一些参数
      baseInfo.lang = baseParams.lang || baseParams.userInfo.lang || defaultLang;
      baseInfo.timeZone = baseParams.timeZone || baseParams.userInfo.timeZone;
      baseInfo.token = baseParams.userInfo.token;
      baseInfo.userInfo = baseParams.userInfo.userInfo;

      // 写入缓存，方便getInfo获取
      window.localStorage.setItem('lang', baseInfo.lang);
      window.localStorage.setItem('TIME_ZONE', baseInfo.timeZone);

      // 将基座应用给的全部写入baseInfo 和缓存
      // for (const key in baseParams) {
      //   if (Object.prototype.hasOwnProperty.call(baseParams, key)) {
      //     baseInfo[key] = baseParams[key];
      //     window.localStorage.setItem(key, baseParams[key]);
      //   }
      // }
      // // 单独记录一个USER_INFO的localstorage
      // window.localStorage.setItem('USER_INFO', JSON.stringify(baseParams.userInfo));
    }
  } catch (error) {}
};
