mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-18 05:10:45 +00:00
Update to get back processes in metaData; add actions menu to entity-list; fix routing directly to entity lists
This commit is contained in:
60
src/App.tsx
60
src/App.tsx
@ -13,14 +13,7 @@ Coded by www.creative-tim.com
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
*/
|
||||
|
||||
import React, {
|
||||
useState,
|
||||
useEffect,
|
||||
useMemo,
|
||||
JSXElementConstructor,
|
||||
Key,
|
||||
ReactElement,
|
||||
} from "react";
|
||||
import React, { useState, useEffect, JSXElementConstructor, Key, ReactElement } from "react";
|
||||
|
||||
// react-router components
|
||||
import { Routes, Route, Navigate, useLocation } from "react-router-dom";
|
||||
@ -39,15 +32,12 @@ import Configurator from "examples/Configurator";
|
||||
|
||||
// Material Dashboard 2 PRO React TS themes
|
||||
import theme from "assets/theme";
|
||||
import themeRTL from "assets/theme/theme-rtl";
|
||||
|
||||
// Material Dashboard 2 PRO React TS Dark Mode themes
|
||||
import themeDark from "assets/theme-dark";
|
||||
import themeDarkRTL from "assets/theme-dark/theme-rtl";
|
||||
|
||||
// RTL plugins
|
||||
import rtlPlugin from "stylis-plugin-rtl";
|
||||
import { CacheProvider } from "@emotion/react";
|
||||
import createCache from "@emotion/cache";
|
||||
|
||||
// Material Dashboard 2 PRO React TS routes
|
||||
@ -60,8 +50,10 @@ import { useMaterialUIController, setMiniSidenav, setOpenConfigurator } from "co
|
||||
import brandWhite from "assets/images/logo-ct.png";
|
||||
import brandDark from "assets/images/logo-ct-dark.png";
|
||||
import EntityCreate from "./qqq/pages/entity-create";
|
||||
import EntityList from "./qqq/pages/entity-list";
|
||||
import EntityView from "./qqq/pages/entity-view";
|
||||
import EntityEdit from "./qqq/pages/entity-edit";
|
||||
import ProcessRun from "./qqq/pages/process-run";
|
||||
|
||||
export default function App() {
|
||||
const [controller, dispatch] = useMaterialUIController();
|
||||
@ -76,20 +68,8 @@ export default function App() {
|
||||
darkMode,
|
||||
} = controller;
|
||||
const [onMouseEnter, setOnMouseEnter] = useState(false);
|
||||
const [rtlCache, setRtlCache] = useState(null);
|
||||
const { pathname } = useLocation();
|
||||
|
||||
// Cache for the rtl
|
||||
useMemo(() => {
|
||||
const pluginRtl: any = rtlPlugin;
|
||||
const cacheRtl = createCache({
|
||||
key: "rtl",
|
||||
stylisPlugins: [pluginRtl],
|
||||
});
|
||||
|
||||
setRtlCache(cacheRtl);
|
||||
}, []);
|
||||
|
||||
// Open sidenav when mouse enter on mini sidenav
|
||||
const handleOnMouseEnter = () => {
|
||||
if (miniSidenav && !onMouseEnter) {
|
||||
@ -164,39 +144,13 @@ export default function App() {
|
||||
</MDBox>
|
||||
);
|
||||
|
||||
const entityListElement = <EntityList />;
|
||||
const entityCreateElement = <EntityCreate />;
|
||||
const entityViewElement = <EntityView />;
|
||||
const entityEditElement = <EntityEdit />;
|
||||
const processRunElement = <ProcessRun />;
|
||||
|
||||
return direction === "rtl" ? (
|
||||
<CacheProvider value={rtlCache}>
|
||||
<ThemeProvider theme={darkMode ? themeDarkRTL : themeRTL}>
|
||||
<CssBaseline />
|
||||
{layout === "dashboard" && (
|
||||
<>
|
||||
<Sidenav
|
||||
color={sidenavColor}
|
||||
brand={(transparentSidenav && !darkMode) || whiteSidenav ? brandDark : brandWhite}
|
||||
brandName="Material Dashboard PRO"
|
||||
routes={routes}
|
||||
onMouseEnter={handleOnMouseEnter}
|
||||
onMouseLeave={handleOnMouseLeave}
|
||||
/>
|
||||
<Configurator />
|
||||
{configsButton}
|
||||
</>
|
||||
)}
|
||||
{layout === "vr" && <Configurator />}
|
||||
<Routes>
|
||||
<Route path="*" element={<Navigate to="/dashboards/analytics" />} />
|
||||
<Route path="/:tableName/create" element={entityCreateElement} key="entity-create" />;
|
||||
<Route path="/:tableName/view/:id" element={entityViewElement} key="entity-view" />;
|
||||
<Route path="/:tableName/edit/:id" element={entityEditElement} key="entity-edit" />;
|
||||
{getRoutes(routes)}
|
||||
</Routes>
|
||||
</ThemeProvider>
|
||||
</CacheProvider>
|
||||
) : (
|
||||
return (
|
||||
<ThemeProvider theme={darkMode ? themeDark : theme}>
|
||||
<CssBaseline />
|
||||
{layout === "dashboard" && (
|
||||
@ -216,9 +170,11 @@ export default function App() {
|
||||
{layout === "vr" && <Configurator />}
|
||||
<Routes>
|
||||
<Route path="*" element={<Navigate to="/dashboards/analytics" />} />
|
||||
<Route path="/:tableName/list" element={entityListElement} key="entity-list" />;
|
||||
<Route path="/:tableName/create" element={entityCreateElement} key="entity-create" />;
|
||||
<Route path="/:tableName/view/:id" element={entityViewElement} key="entity-view" />;
|
||||
<Route path="/:tableName/edit/:id" element={entityEditElement} key="entity-edit" />;
|
||||
<Route path="/processes/:processName" element={processRunElement} key="process-run" />;
|
||||
{getRoutes(routes)}
|
||||
</Routes>
|
||||
</ThemeProvider>
|
||||
|
Reference in New Issue
Block a user