oak-frontend-base/es/platforms/web/initialize/index.js

48 lines
2.2 KiB
JavaScript

// @ts-nocheck
import React from 'react';
import ReactDOM from 'react-dom/client';
import { createBrowserHistory } from 'history';
import { unstable_HistoryRouter as HistoryRouter } from 'react-router-dom';
import { ConfigProvider } from 'antd';
import { StyleProvider, legacyLogicalPropertiesTransformer } from '@ant-design/cssinjs';
import dayjs from 'dayjs';
import { ResponsiveProvider } from '../responsive';
import { FeaturesProvider } from '../features';
import AppError from './AppError';
import AppContainer from './AppContainer';
import AppRouter from './AppRouter';
import { autoFixContext } from 'react-activation';
import 'dayjs/locale/zh-cn';
import zhCN from 'antd/locale/zh_CN';
import enUS from 'antd/locale/en_US';
autoFixContext([require('react/jsx-runtime'), 'jsx', 'jsxs', 'jsxDEV'], [require('react/jsx-dev-runtime'), 'jsx', 'jsxs', 'jsxDEV']);
export default function initialize(features, appName, routers, locales, error) {
const root = ReactDOM.createRoot(document.getElementById('root'));
const history = createBrowserHistory();
features.navigator.setHistory(history);
if (error) {
root.render(<AppError error={error} features={features}/>);
}
else {
const { language } = window.navigator;
dayjs.locale(locales?.dayJs || ['zh-CN', 'zh_CN'].includes(language) ? 'zh-cn' : 'en-us');
root.render(<HistoryRouter history={history}>
<ResponsiveProvider>
<FeaturesProvider features={features}>
<ConfigProvider locale={locales?.dayJs || ['zh-CN', 'zh_CN'].includes(language) ? zhCN : enUS} theme={{
cssVar: {
prefix: 'adm', // 和antd-mobile共享
}
}}>
<StyleProvider hashPriority="high" transformers={[legacyLogicalPropertiesTransformer]}>
<AppContainer>
<AppRouter features={features} appName={appName} routers={routers}/>
</AppContainer>
</StyleProvider>
</ConfigProvider>
</FeaturesProvider>
</ResponsiveProvider>
</HistoryRouter>);
}
}