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;