-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathindex.jsx
More file actions
50 lines (43 loc) · 1.53 KB
/
index.jsx
File metadata and controls
50 lines (43 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { configure, makeAutoObservable } from "mobx";
import { createHashRouter, RouterProvider } from "react-router-dom";
import { createRoot } from "react-dom/client";
import { connectToFirebase } from "../firebase";
import { model } from "./model";
import App from "./pages/App.jsx";
import "./styles.css";
import SharedView from "./pages/SharedView.jsx";
import { JsonToDatabase } from "./presenters/Tests/JsonToDatabase";
import { AllCoursesPresenter } from "./presenters/Tests/AllCoursesPresenter.jsx";
/**
* This file contains the bootstrapping, as well as the router used in our webapp.
*/
configure({ enforceActions: "observed", reactionScheduler: (f) => setTimeout(f, 0),});
const reactiveModel = makeAutoObservable(model);
connectToFirebase(reactiveModel);
export function makeRouter(reactiveModel) {
return createHashRouter([
{
path: "/",
element: <App model={reactiveModel} />,
},
{
path: "/share",
//element: <SharedView />,
element: <SharedView model={reactiveModel} />,
},
// Testcases, which are disabled for deployment:
// {
// path: "/button",
// element: <JsonToDatabase model={reactiveModel} />,
// },
// {
// path: "/all",
// element: <AllCoursesPresenter model={reactiveModel} />,
// },
]);
}
createRoot(document.getElementById("root")).render(
<RouterProvider router={makeRouter(reactiveModel)} />
);
// give user access for debugging purpose
// window.myModel = reactiveModel;