| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- 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';
- import './i18n/i18n';
- 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>,
- );
|