| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- Copyright (C) 2025 QuantumNous
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
- For commercial licensing, please contact support@quantumnous.com
- */
- import React from 'react';
- import ReactDOM from 'react-dom/client';
- import { BrowserRouter } from 'react-router-dom';
- import '@douyinfe/semi-ui/dist/css/semi.css';
- import { UserProvider } from './context/User';
- import 'react-toastify/dist/ReactToastify.css';
- import { StatusProvider } from './context/Status';
- import { ThemeProvider } from './context/Theme';
- import PageLayout from './components/layout/PageLayout.js';
- import './i18n/i18n.js';
- import './index.css';
- import { LocaleProvider } from '@douyinfe/semi-ui';
- import { useTranslation } from 'react-i18next';
- import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';
- import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
- // 欢迎信息(二次开发者未经允许不准将此移除)
- // Welcome message (Do not remove this without permission from the original developer)
- if (typeof window !== 'undefined') {
- console.log('%cWe ❤ NewAPI%c Github: https://github.com/QuantumNous/new-api',
- 'color: #10b981; font-weight: bold; font-size: 24px;',
- 'color: inherit; font-size: 14px;');
- }
- function SemiLocaleWrapper({ children }) {
- const { i18n } = useTranslation();
- const semiLocale = React.useMemo(
- () => ({ zh: zh_CN, en: en_GB }[i18n.language] || zh_CN),
- [i18n.language],
- );
- return <LocaleProvider locale={semiLocale}>{children}</LocaleProvider>;
- }
- // initialization
- const root = ReactDOM.createRoot(document.getElementById('root'));
- root.render(
- <React.StrictMode>
- <StatusProvider>
- <UserProvider>
- <BrowserRouter
- future={{
- v7_startTransition: true,
- v7_relativeSplatPath: true,
- }}
- >
- <ThemeProvider>
- <SemiLocaleWrapper>
- <PageLayout />
- </SemiLocaleWrapper>
- </ThemeProvider>
- </BrowserRouter>
- </UserProvider>
- </StatusProvider>
- </React.StrictMode>,
- );
|