Files
MemoryBear/web/src/App.tsx
yujiangping 7d56c14e42 合并 feature/20251219_yjp 分支到 web 分支
冲突解决策略:
- web/src/views/KnowledgeBase/ 文件夹下的所有冲突以 feature/20251219_yjp 分支为主
- 其他冲突(如 vite.config.ts)以 web 分支为主

主要更改:
- 保留了 feature 分支中的知识库相关功能和组件
- 保持了 web 分支的配置和其他功能
- 添加了自定义文本数据集创建功能
- 更新了知识库管理界面
2025-12-17 15:25:20 +08:00

78 lines
1.7 KiB
TypeScript

/*
* @Description:
* @Version: 0.0.1
* @Author: yujiangping
* @Date: 2025-11-24 19:00:14
* @LastEditors: yujiangping
* @LastEditTime: 2025-11-25 18:48:26
*/
import { RouterProvider } from 'react-router-dom';
import {
Suspense,
useEffect
} from 'react';
import {
Spin,
ConfigProvider,
App as AntdApp
} from 'antd';
import { useTranslation } from 'react-i18next';
import { lightTheme } from './styles/antdThemeConfig.ts'
import router from './routes';
import { useI18n } from '@/store/locale'
import LayoutBg from '@/components/Layout/LayoutBg'
import dayjs from 'dayjs'
import 'dayjs/locale/en'
import 'dayjs/locale/zh-cn'
import 'dayjs/plugin/timezone'
import 'dayjs/plugin/utc'
import { cookieUtils } from './utils/request';
function App() {
const { t } = useTranslation();
const { locale, language, timeZone } = useI18n()
useEffect(() => {
const authToken = cookieUtils.get('authToken')
if (!authToken && !window.location.hash.includes('#/login')) {
window.location.href = `/#/login`;
}
}, [])
useEffect(() => {
document.title = t('memoryBear')
dayjs.locale(language)
localStorage.setItem('language', language)
}, [language])
useEffect(() => {
// 设置dayjs的时区
dayjs.tz.setDefault(timeZone)
localStorage.setItem('timeZone', timeZone)
}, [timeZone])
return (
<ConfigProvider
locale={locale}
theme={lightTheme}
>
<AntdApp>
<LayoutBg />
<Suspense fallback={<Spin fullscreen></Spin>}>
<RouterProvider
router={router}
future={{
v7_startTransition: true,
}}
/>
</Suspense>
</AntdApp>
</ConfigProvider>
);
}
export default App