github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/apps/sys.monitor/site.main.src/src/App.js (about) 1 /* 2 * Copyright (c) 2022-present unTill Pro, Ltd. 3 */ 4 5 import * as React from "react"; 6 import { Admin, CustomRoutes, Resource, useTranslate } from 'react-admin'; 7 import { Route } from "react-router-dom"; 8 import jsonServerProvider from 'ra-data-json-server'; 9 import polyglotI18nProvider from 'ra-i18n-polyglot'; 10 import englishMessages from './i18n/en'; 11 import MonLayout from "./layout/MonLayout"; 12 import Dashboard from "./dashboard/Dashboard"; 13 import SysResources from "./elements/SysResources"; 14 import SysPerformance from "./elements/SysPerformance"; 15 import AppPerformance from "./elements/AppPerformance"; 16 import EmuProvider from "./data/EmuProvider"; 17 import { ResMetrics } from "./data/Resources"; 18 import AppPartitionProjectors from "./elements/AppPartitionProjectors"; 19 20 21 const i18nProvider = polyglotI18nProvider(locale => { 22 if (locale === 'ru') { 23 return import('./i18n/ru').then(messages => messages.default); 24 } 25 26 // Always fallback on english 27 return englishMessages; 28 }, 'en'); 29 30 31 const App = () => { 32 const translate = useTranslate(); 33 return( 34 <Admin dataProvider={EmuProvider} layout={MonLayout} i18nProvider={i18nProvider} dashboard={Dashboard} > 35 <Resource name={ResMetrics} /> 36 <CustomRoutes> 37 <Route path="/sys-performance" element={<SysPerformance path="sys-performance" title={translate('menu.sysPerformance')}/>} /> 38 <Route path="/sys-resources" element={<SysResources path="sys-resources" title={translate('menu.sysResources')} />} /> 39 <Route path="/app-performance" element={<AppPerformance path="app-performance"/>} /> 40 <Route path="/app-partition-projectors" element={<AppPartitionProjectors />} /> 41 </CustomRoutes> 42 </Admin> 43 ) 44 }; 45 46 export default App;