Refactor App and EmbeddedActiveEquipmentPage for theme support

- Renamed the main component from `App` to `ToirAdmin` for clarity.
- Integrated theme support using `useEmbeddedParentTheme` to dynamically adjust the UI based on the parent theme.
- Updated `EmbeddedActiveEquipmentPage` to utilize the new theme and improved styling for better user experience.
- Added a new utility hook `useEmbeddedParentTheme` to manage theme changes via postMessage from parent origins.
- Enhanced the `vite-env.d.ts` file to include environment variable definitions for parent origins.
This commit is contained in:
Первов Артем
2026-04-21 01:50:21 +03:00
parent 4584a0d581
commit d572647772
4 changed files with 196 additions and 51 deletions

View File

@@ -1,6 +1,9 @@
import { createTheme } from '@mui/material/styles';
import { useMemo } from 'react';
import { Admin, Resource } from 'react-admin';
import { authProvider } from './auth/authProvider';
import { dataProvider } from './dataProvider';
import { useEmbeddedParentTheme } from './embed/useEmbeddedParentTheme';
import { EmbeddedActiveEquipmentPage } from './pages/EmbeddedActiveEquipmentPage';
import { EquipmentCreate } from './resources/equipment/EquipmentCreate';
import { EquipmentEdit } from './resources/equipment/EquipmentEdit';
@@ -11,13 +14,18 @@ import { EquipmentStatusChangeEdit } from './resources/equipment-status-change/E
import { EquipmentStatusChangeList } from './resources/equipment-status-change/EquipmentStatusChangeList';
import { EquipmentStatusChangeShow } from './resources/equipment-status-change/EquipmentStatusChangeShow';
function App() {
if (window.location.pathname === '/embedded/equipment-active') {
return <EmbeddedActiveEquipmentPage />;
}
function ToirAdmin() {
const paletteMode = useEmbeddedParentTheme();
const theme = useMemo(
() =>
createTheme({
palette: { mode: paletteMode },
}),
[paletteMode],
);
return (
<Admin dataProvider={dataProvider} authProvider={authProvider}>
<Admin dataProvider={dataProvider} authProvider={authProvider} theme={theme}>
<Resource
name="equipment"
list={EquipmentList}
@@ -36,4 +44,12 @@ function App() {
);
}
function App() {
if (window.location.pathname === '/embedded/equipment-active') {
return <EmbeddedActiveEquipmentPage />;
}
return <ToirAdmin />;
}
export default App;