<script setup lang="ts">
import { onLaunch } from '@dcloudio/uni-app'
import { useAuthStore } from './store/auth'
import { configTheme } from './components/theme/ThemeDefine';
import { LogUtils } from '@imengyu/imengyu-utils';
import { useCommonCategoryGlobalLoader } from './pages/article/data/CommonCategoryGlobalLoader';
import { useAppConfiguration } from './api/system/useAppConfiguration';
import AppCofig from './common/config/AppCofig';
import { IconUtils } from './components/basic/IconUtils';

const TAG = 'App';
const authStore = useAuthStore();
const { loadCommonCategory } = useCommonCategoryGlobalLoader();
const { loadAppConfiguration } = useAppConfiguration();

function loadFontFace() {
  uni.loadFontFace({
    global: true,
    family: "SongtiSCBlack",
    source: 'url("https://mncdn.wenlvti.net/assets/fonts/STSongti-SC-Black.woff")',
  });
  uni.loadFontFace({
    global: true,
    family: "HUNdin1451",
    source: 'url("https://mncdn.wenlvti.net/app_static/minnan/fonts/HUN-din1451.woff")',
  });
}

onLaunch(async () => {
  LogUtils.printLog(TAG, 'info', 'App Launch');

  //加载配置
  await loadAppConfiguration();

  //加载字体
  loadFontFace();

  //加载登录状态
  await authStore.loadLoginState();

  //加载系统分类
  await loadCommonCategory();
})

configTheme(false, (theme, darkTheme) => {
  theme.colorConfigs.default.primary = '#d9492e';
  theme.colorConfigs.pressed.primary = '#882d1d';
  theme.colorConfigs.background.primary = '#ffcfc6';
  theme.colorConfigs.background.warning = '#f5ebe0';
  theme.colorConfigs.background.page = '#f6f2e7';
  theme.varOverrides.ImageDefaultImage = AppCofig.defaultImage;
  theme.varOverrides.AppHomePage = '/pages/home/index';
  return [theme, darkTheme];
});

IconUtils.loadDefaultIcons('https://mncdn.wenlvti.net/app_static/xiangyuan/data/DefaultIcon.json');
//添加自定义图标
IconUtils.configIconMap({
  'walk': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M324.992 371.712l136.746667-99.328A85.12 85.12 0 0 1 514.773333 256a111.616 111.616 0 0 1 103.552 77.653333c7.936 24.874667 15.189333 41.685333 21.76 50.432A213.034667 213.034667 0 0 0 810.666667 469.333333v85.333334a298.069333 298.069333 0 0 1-230.442667-108.672l-29.781333 168.789333 87.936 73.770667 94.848 260.608-80.213334 29.184-86.997333-239.104-144.64-121.386667a85.333333 85.333333 0 0 1-30.464-81.237333l21.717333-123.093334-28.885333 20.992-90.752 124.928-69.034667-50.176L324.266667 371.2l0.725333 0.512zM576 234.666667a85.333333 85.333333 0 1 1 0-170.666667 85.333333 85.333333 0 0 1 0 170.666667zM449.28 797.056l-137.130667 163.413333-65.365333-54.826666 126.933333-151.296 31.829334-93.013334 76.416 64-32.682667 71.722667z" ></path></svg>',
  'taxi': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M938.666667 512v384a42.666667 42.666667 0 0 1-42.666667 42.666667h-42.666667a42.666667 42.666667 0 0 1-42.666666-42.666667v-42.666667H213.333333v42.666667a42.666667 42.666667 0 0 1-42.666666 42.666667H128a42.666667 42.666667 0 0 1-42.666667-42.666667v-384l105.813334-246.954667A85.333333 85.333333 0 0 1 269.653333 213.333333H384V128h256v85.333333h114.389333a85.333333 85.333333 0 0 1 78.421334 51.712L938.666667 512zM178.176 512h667.648l-91.434667-213.333333H269.653333l-91.434666 213.333333zM277.333333 725.333333a64 64 0 1 0 0-128 64 64 0 0 0 0 128z m469.333334 0a64 64 0 1 0 0-128 64 64 0 0 0 0 128z"></path></svg>',
  'drive': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333zM341.333333 554.666667l-168.021333 0.042666A341.504 341.504 0 0 0 469.333333 850.688V682.666667a128 128 0 0 1-128-128z m509.354667 0.042666L682.666667 554.666667a128 128 0 0 1-128 128l0.042666 168.021333a341.504 341.504 0 0 0 295.978667-295.978667zM597.333333 512h-170.666666v42.666667a42.666667 42.666667 0 0 0 42.666666 42.666666h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666666v-42.666667z m-85.333333-341.333333a341.376 341.376 0 0 0-338.688 298.666666H341.333333a42.666667 42.666667 0 0 1 42.666667-42.666666h256a42.666667 42.666667 0 0 1 42.666667 42.666666h168.021333A341.376 341.376 0 0 0 512 170.666667z"></path></svg>',
  'subway': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M733.866667 853.333333l76.8 64v21.333334H213.333333v-21.333334L290.133333 853.333333H213.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V298.666667a170.666667 170.666667 0 0 1 170.666667-170.666667h426.666666a170.666667 170.666667 0 0 1 170.666667 170.666667v469.333333a85.333333 85.333333 0 0 1-85.333333 85.333333h-76.8zM469.333333 512V213.333333H298.666667a85.333333 85.333333 0 0 0-85.333334 85.333334v213.333333h256z m85.333334 0h256V298.666667a85.333333 85.333333 0 0 0-85.333334-85.333334h-170.666666v298.666667z m-234.666667 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128z m384 0a64 64 0 1 0 0-128 64 64 0 0 0 0 128z"></path></svg>',
  'train': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M733.866667 853.333333l76.8 64v21.333334H213.333333v-21.333334L290.133333 853.333333H213.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V298.666667a170.666667 170.666667 0 0 1 170.666667-170.666667h426.666666a170.666667 170.666667 0 0 1 170.666667 170.666667v469.333333a85.333333 85.333333 0 0 1-85.333333 85.333333h-76.8zM298.666667 213.333333a85.333333 85.333333 0 0 0-85.333334 85.333334v469.333333h597.333334V298.666667a85.333333 85.333333 0 0 0-85.333334-85.333334H298.666667z m213.333333 512a85.333333 85.333333 0 1 1 0-170.666666 85.333333 85.333333 0 0 1 0 170.666666zM256 298.666667h512v170.666666H256V298.666667z"></path></svg>',
  'riding': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M234.666667 896a192 192 0 1 1 0-384 192 192 0 0 1 0 384z m0-85.333333a106.666667 106.666667 0 1 0 0-213.333334 106.666667 106.666667 0 0 0 0 213.333334z m554.666666 85.333333a192 192 0 1 1 0-384 192 192 0 0 1 0 384z m0-85.333333a106.666667 106.666667 0 1 0 0-213.333334 106.666667 106.666667 0 0 0 0 213.333334z m-319.018666-370.986667L554.666667 512v256h-85.333334v-213.333333l-116.010666-96.682667A85.333333 85.333333 0 0 1 341.333333 327.296l120.661334-120.661333a85.333333 85.333333 0 0 1 120.704 0l60.330666 60.330666a297.344 297.344 0 0 0 167.125334 84.266667l-0.426667 85.973333a382.378667 382.378667 0 0 1-227.029333-109.866666l-112.384 112.341333zM682.666667 213.333333a85.333333 85.333333 0 1 1 0-170.666666 85.333333 85.333333 0 0 1 0 170.666666z"></path></svg>',
  'bus': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M725.333333 853.333333H298.666667v42.666667a42.666667 42.666667 0 0 1-42.666667 42.666667H213.333333a42.666667 42.666667 0 0 1-42.666666-42.666667v-42.666667H128v-341.333333H85.333333V341.333333h42.666667V213.333333a85.333333 85.333333 0 0 1 85.333333-85.333333h597.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v128h42.666667v170.666667h-42.666667v341.333333h-42.666667v42.666667a42.666667 42.666667 0 0 1-42.666666 42.666667h-42.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-42.666667zM213.333333 213.333333v384h597.333334V213.333333H213.333333z m0 469.333334v85.333333h170.666667v-85.333333H213.333333z m426.666667 0v85.333333h170.666667v-85.333333h-170.666667z"></path></svg>',
  'my-location': '<svg viewBox="0 0 1024 1024" width="80" height="80"><path d="M473 71a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v77.161C722.848 166.622 857.812 301.289 876.729 471H952a8 8 0 0 1 8 8v64a8 8 0 0 1-8 8h-75.053C858.871 721.652 723.515 857.305 553 875.839V951a8 8 0 0 1-8 8h-64a8 8 0 0 1-8-8v-75.161C302.818 857.341 167.659 722.182 149.161 552H72a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8h77.161C167.659 301.818 302.818 166.659 473 148.161V71z m326 441c0-157.953-128.047-286-286-286S227 354.047 227 512s128.047 286 286 286 286-128.047 286-286z m-286 60c33.137 0 60-26.863 60-60s-26.863-60-60-60-60 26.863-60 60 26.863 60 60 60z"></path></svg>',
});

</script>

<style lang="scss">
@use "@/common/scss/fonts.scss" as *;
@use "@/common/scss/common.scss" as *;
@use "@/common/scss/global/base.scss" as *;
@use "@/components/index.scss" as *;

page {
  background-color: #f6f2e7;
  overflow-x: hidden;
}
</style>

