Files
toir-light/client/src/App.tsx
2026-04-30 04:40:42 +03:00

71 lines
2.4 KiB
TypeScript

import { useMemo } from 'react';
import { Admin, Resource } from 'react-admin';
import polyglotI18nProvider from 'ra-i18n-polyglot';
import { authProvider } from './auth/authProvider';
import { dataProvider } from './dataProvider';
import { useEmbeddedParentTheme } from './embed/useEmbeddedParentTheme';
import { messagesRu } from './i18n/ru';
import { EmbeddedActiveEquipmentPage } from './pages/EmbeddedActiveEquipmentPage';
import { buildToirMuiTheme } from './theme/toirMuiTheme';
import { EquipmentCreate } from './resources/equipment/EquipmentCreate';
import { EquipmentEdit } from './resources/equipment/EquipmentEdit';
import { EquipmentList } from './resources/equipment/EquipmentList';
import { EquipmentShow } from './resources/equipment/EquipmentShow';
import { EquipmentStatusChangeCreate } from './resources/equipment-status-change/EquipmentStatusChangeCreate';
import { EquipmentStatusChangeEdit } from './resources/equipment-status-change/EquipmentStatusChangeEdit';
import { EquipmentStatusChangeList } from './resources/equipment-status-change/EquipmentStatusChangeList';
import { EquipmentStatusChangeShow } from './resources/equipment-status-change/EquipmentStatusChangeShow';
import { ToirLayout } from './layout/ToirLayout';
function ToirAdmin() {
const paletteMode = useEmbeddedParentTheme();
const theme = useMemo(
() => buildToirMuiTheme(paletteMode),
[paletteMode],
);
const i18nProvider = useMemo(
() =>
polyglotI18nProvider(() => messagesRu, 'ru', {
allowMissing: true,
}),
[],
);
return (
<Admin
layout={ToirLayout}
dataProvider={dataProvider}
authProvider={authProvider}
theme={theme}
i18nProvider={i18nProvider}
>
<Resource
name="equipment"
options={{ label: 'Оборудование' }}
list={EquipmentList}
create={EquipmentCreate}
edit={EquipmentEdit}
show={EquipmentShow}
/>
<Resource
name="status-changes"
options={{ label: 'Журнал актов' }}
list={EquipmentStatusChangeList}
create={EquipmentStatusChangeCreate}
edit={EquipmentStatusChangeEdit}
show={EquipmentStatusChangeShow}
/>
</Admin>
);
}
function App() {
if (window.location.pathname === '/embedded/equipment-active') {
return <EmbeddedActiveEquipmentPage />;
}
return <ToirAdmin />;
}
export default App;