/
App.tsx
92 lines (85 loc) · 3.05 KB
/
App.tsx
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import React, { Component, Suspense, lazy } from "react";
import Header from "./Header";
import ErrorBoundry from "./ErrorBoundry";
import { History, Location } from "history";
import { ImportResolveState, ProcessedImportState } from "./types";
const Bundle = lazy(() => import("./bundle/Bundle"));
const Home = lazy(() => import("./home/Home"));
const Resolve = lazy(() => import("./resolve/Resolve"));
type T = typeof Resolve;
class App extends Component {
state = {};
render() {
if (process.env.NODE_ENV === "production") {
if (!new URLSearchParams(window.location.search).has("randal")) {
return `no access`;
}
}
return (
<Router>
<ErrorBoundry>
<div className="App">
<Header />
<div className="Page">
<Suspense fallback={<div>Loading...</div>}>
<Switch>
<Route
path="/bundle"
component={({
location
}: {
location: Location<ProcessedImportState>;
}) => {
let params = new URLSearchParams(location.search);
return (
<Bundle
trimmedNetwork={(location.state).trimmedNetwork}
rollups={(location.state).rollups}
duplicateNodeModules={
(location.state).duplicateNodeModules
}
selected={params.get("selected")}
hierarchy={location.state.hierachy}
/>
);
}}
/>
<Route
path="/"
component={(h: {
location: Location<ImportResolveState>;
history: History;
}) => {
return (
<Home
history={h.history}
graphNodes={
h.location.state && h.location.state.graphNodes
}
processedSourceMap={
h.location.state &&
h.location.state.processedSourceMap
}
sourceMapFileTransform={
h.location.state &&
h.location.state.sourceMapFileTransform
}
graphFileTransform={
h.location.state &&
h.location.state.graphFileTransform
}
/>
);
}}
/>
</Switch>
</Suspense>
</div>
</div>
</ErrorBoundry>
</Router>
);
}
}
export default App;