1+ import { themeSwitcher } from "@siemens/ix" ;
2+ import { getIxTheme } from "@siemens/ix-aggrid" ;
13import { IxApplicationContext } from "@siemens/ix-react" ;
2- import "@siemens/ix/dist/siemens-ix/siemens-ix.css" ;
4+ import "@siemens/ix/dist/siemens-ix/siemens-ix-core.css" ;
5+ import "@siemens/ix/dist/siemens-ix/theme/classic-dark.css" ;
6+ import "@siemens/ix/dist/siemens-ix/theme/classic-light.css" ;
7+ import { AllCommunityModule , ModuleRegistry , provideGlobalGridOptions } from "ag-grid-community" ;
38import { StrictMode } from "react" ;
49import { createRoot } from "react-dom/client" ;
510import { createHashRouter , RouterProvider } from "react-router-dom" ;
@@ -8,6 +13,9 @@ import "./i18n";
813import "./index.css" ;
914import DevicesPage from "./pages/devices/index.tsx" ;
1015import OverviewPage from "./pages/overview/index.tsx" ;
16+ import * as agGrid from "ag-grid-community" ;
17+
18+ ModuleRegistry . registerModules ( [ AllCommunityModule ] ) ;
1119
1220function optionalTheme ( ) {
1321 if ( import . meta. env . VITE_THEME ) {
@@ -23,33 +31,43 @@ function optionalTheme() {
2331 script . type = "module" ;
2432 document . head . appendChild ( script ) ;
2533
26- document . body . classList . add ( "theme- brand-dark ") ;
34+ themeSwitcher . setTheme ( " brand") ;
2735 }
2836}
2937
3038optionalTheme ( ) ;
3139
32- const router = createHashRouter ( [
33- {
34- path : "/" ,
35- element : < App /> ,
36- children : [
37- {
38- path : "/" ,
39- element : < OverviewPage /> ,
40- } ,
41- {
42- path : "/devices" ,
43- element : < DevicesPage /> ,
44- } ,
45- ] ,
46- } ,
47- ] ) ;
48-
49- createRoot ( document . getElementById ( "root" ) ! ) . render (
50- < StrictMode >
51- < IxApplicationContext >
52- < RouterProvider router = { router } > </ RouterProvider >
53- </ IxApplicationContext >
54- </ StrictMode > ,
55- ) ;
40+ async function configureAgGridTheme ( ) {
41+ const ixTheme = getIxTheme ( agGrid ) ;
42+ provideGlobalGridOptions ( {
43+ theme : ixTheme ,
44+ } ) ;
45+ }
46+
47+ // Initialize AG Grid theme and then render the app
48+ configureAgGridTheme ( ) . then ( ( ) => {
49+ const router = createHashRouter ( [
50+ {
51+ path : "/" ,
52+ element : < App /> ,
53+ children : [
54+ {
55+ path : "/" ,
56+ element : < OverviewPage /> ,
57+ } ,
58+ {
59+ path : "/devices" ,
60+ element : < DevicesPage /> ,
61+ } ,
62+ ] ,
63+ } ,
64+ ] ) ;
65+
66+ createRoot ( document . getElementById ( "root" ) ! ) . render (
67+ < StrictMode >
68+ < IxApplicationContext >
69+ < RouterProvider router = { router } > </ RouterProvider >
70+ </ IxApplicationContext >
71+ </ StrictMode > ,
72+ ) ;
73+ } ) ;
0 commit comments