Add router and login part

This commit is contained in:
2020-02-15 14:00:15 +01:00
parent 47f0edb8e6
commit eed63b2bbc
10 changed files with 502 additions and 303 deletions
+6
View File
@@ -13,8 +13,14 @@
"@types/prop-types": "^15.7.3",
"@types/react": "^16.9.19",
"@types/react-dom": "^16.9.5",
"@types/react-router-dom": "^5.1.3",
"bootstrap": "^4.4.1",
"jquery": "^3.4.1",
"popper.js": "^1.16.1",
"react": "^16.12.0",
"react-bootstrap": "^1.0.0-beta.16",
"react-dom": "^16.12.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.3.1",
"typescript": "~3.7.2"
},
+7 -30
View File
@@ -1,43 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<meta name="description" content="Web site created using create-react-app" />
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
<title>Demo App - Jeroen Vijgen</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
<div id="App"></div>
</body>
</html>
-38
View File
@@ -1,38 +0,0 @@
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
+22 -9
View File
@@ -1,12 +1,25 @@
import React from 'react';
import './App.css';
/* eslint-disable @typescript-eslint/no-unused-expressions */
const App = () => {
return (
<div className="App">
<header className="App-header">Hi</header>
</div>
);
import React from 'react';
import { Switch, Route, Redirect } from 'react-router-dom';
import Login from '../LoginComponent/Login';
import Dashboard from '../DashboardComponent/Dashboard';
export default class App extends React.Component {
componentDidMount() {
if((localStorage.getItem("APILink") !== undefined || localStorage.getItem("APILink") !== '') &&
(localStorage.getItem("AccessToken") !== undefined || localStorage.getItem("AccessToken") !== '')) {
return <Redirect to="/dashboard" />
};
}
export default App;
render() {
return (
<Switch>
<Route exact path="/" component={Login} />
<Route path="/dashboard" component={Dashboard} />
<Redirect to="/" />
</Switch>
);
}
}
@@ -0,0 +1,7 @@
import React from 'react';
export default class Dashboard extends React.Component {
render () {
return (<h1> This is the dashboard, fuck yeah </h1>)
}
}
+44
View File
@@ -0,0 +1,44 @@
import React from 'react';
import { Card, Button, InputGroup, FormControl } from 'react-bootstrap';
export default class Login extends React.Component {
// eslint-disable-next-line
constructor(props: any) {
super(props);
}
render () {
return (
<div className="LoginComponent">
<Card className="text-center">
<Card.Body>
<Card.Title>Please login to see the dashboard.</Card.Title>
<Card.Text>
Please fill in the following items: <br /><br />
<InputGroup className="mb-3">
<InputGroup.Prepend>
<InputGroup.Text id="inputGroup-sizing-default">API url</InputGroup.Text>
</InputGroup.Prepend>
<FormControl
aria-label="Default"
aria-describedby="inputGroup-sizing-default"
/>
</InputGroup>
<InputGroup className="mb-3">
<InputGroup.Prepend>
<InputGroup.Text id="inputGroup-sizing-default">API token</InputGroup.Text>
</InputGroup.Prepend>
<FormControl
aria-label="Default"
aria-describedby="inputGroup-sizing-default"
/>
</InputGroup>
</Card.Text>
<Button variant="primary">Login</Button>
</Card.Body>
<Card.Footer className="text-muted">Your last login was X-X-X @ XX:XX</Card.Footer>
</Card>
</div>
);
}
}
+10 -4
View File
@@ -1,13 +1,19 @@
html,
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background-color: #282c34;
height: 100%;
margin: 0;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
#App {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
+2 -7
View File
@@ -1,12 +1,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import { BrowserRouter as Router } from 'react-router-dom';
import App from './Components/AppComponent/App';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();
ReactDOM.render(<Router><App /></Router>, document.getElementById('App'));
-145
View File
@@ -1,145 +0,0 @@
// This optional code is used to register a service worker.
// register() is not called by default.
// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
// will only see deployed updates on subsequent visits to a page, after all the
// existing tabs open on the page have been closed, since previously cached
// resources are updated in the background.
// To learn more about the benefits of this model and instructions on how to
// opt-in, read https://bit.ly/CRA-PWA
const isLocalhost = Boolean(
window.location.hostname === 'localhost' ||
// [::1] is the IPv6 localhost address.
window.location.hostname === '[::1]' ||
// 127.0.0.0/8 are considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
)
);
type Config = {
onSuccess?: (registration: ServiceWorkerRegistration) => void;
onUpdate?: (registration: ServiceWorkerRegistration) => void;
};
export function register(config?: Config) {
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
// The URL constructor is available in all browsers that support SW.
const publicUrl = new URL(
process.env.PUBLIC_URL,
window.location.href
);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
// serve assets; see https://github.com/facebook/create-react-app/issues/2374
return;
}
window.addEventListener('load', () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (isLocalhost) {
// This is running on localhost. Let's check if a service worker still exists or not.
checkValidServiceWorker(swUrl, config);
// Add some additional logging to localhost, pointing developers to the
// service worker/PWA documentation.
navigator.serviceWorker.ready.then(() => {
console.log(
'This web app is being served cache-first by a service ' +
'worker. To learn more, visit https://bit.ly/CRA-PWA'
);
});
} else {
// Is not localhost. Just register service worker
registerValidSW(swUrl, config);
}
});
}
}
function registerValidSW(swUrl: string, config?: Config) {
navigator.serviceWorker
.register(swUrl)
.then(registration => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
if (installingWorker == null) {
return;
}
installingWorker.onstatechange = () => {
if (installingWorker.state === 'installed') {
if (navigator.serviceWorker.controller) {
// At this point, the updated precached content has been fetched,
// but the previous service worker will still serve the older
// content until all client tabs are closed.
console.log(
'New content is available and will be used when all ' +
'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
);
// Execute callback
if (config && config.onUpdate) {
config.onUpdate(registration);
}
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log('Content is cached for offline use.');
// Execute callback
if (config && config.onSuccess) {
config.onSuccess(registration);
}
}
}
};
};
})
.catch(error => {
console.error('Error during service worker registration:', error);
});
}
function checkValidServiceWorker(swUrl: string, config?: Config) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl, {
headers: { 'Service-Worker': 'script' }
})
.then(response => {
// Ensure service worker exists, and that we really are getting a JS file.
const contentType = response.headers.get('content-type');
if (
response.status === 404 ||
(contentType != null && contentType.indexOf('javascript') === -1)
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then(registration => {
registration.unregister().then(() => {
window.location.reload();
});
});
} else {
// Service worker found. Proceed as normal.
registerValidSW(swUrl, config);
}
})
.catch(() => {
console.log(
'No internet connection found. App is running in offline mode.'
);
});
}
export function unregister() {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.ready.then(registration => {
registration.unregister();
});
}
}
+339 -5
View File
@@ -1185,7 +1185,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/runtime@npm:7.8.4, @babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.3.4, @babel/runtime@npm:^7.4.5, @babel/runtime@npm:^7.5.1, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.4, @babel/runtime@npm:^7.7.6":
"@babel/runtime@npm:7.8.4, @babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.3.4, @babel/runtime@npm:^7.4.0, @babel/runtime@npm:^7.4.2, @babel/runtime@npm:^7.4.5, @babel/runtime@npm:^7.5.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.4, @babel/runtime@npm:^7.7.6":
version: 7.8.4
resolution: "@babel/runtime@npm:7.8.4"
dependencies:
@@ -1486,6 +1486,24 @@ __metadata:
languageName: node
linkType: hard
"@restart/context@npm:^2.1.4":
version: 2.1.4
resolution: "@restart/context@npm:2.1.4"
peerDependencies:
react: ">=16.3.2"
checksum: 93ba4350d87802669c4d4a7248db289991fb15cdde39da551274b9c4b767182e0e69df7d3824d56b4350803d11b96316e0f15654e076dd7f11195e8b87c38906
languageName: node
linkType: hard
"@restart/hooks@npm:^0.3.11, @restart/hooks@npm:^0.3.12":
version: 0.3.20
resolution: "@restart/hooks@npm:0.3.20"
peerDependencies:
react: ^16.8.0
checksum: 8e19222ca802f49c991fc34ed76c447d7355055bf1a7741f85a7bc55df54f955cfbb4bfc6928bd71ee3d51270be880537fd8c225ec3ba0750650e7a057812abe
languageName: node
linkType: hard
"@sheerun/mutationobserver-shim@npm:^0.3.2":
version: 0.3.2
resolution: "@sheerun/mutationobserver-shim@npm:0.3.2"
@@ -1751,6 +1769,13 @@ __metadata:
languageName: node
linkType: hard
"@types/history@npm:*":
version: 4.7.5
resolution: "@types/history@npm:4.7.5"
checksum: 16a19c2b1aee6d0ff055940e4ca29db26aa8b0c8ff69161e70dec2151abb4fe3d5be846577c696a5d870a281e362669707ff43323d435a3d84811e6a238348f1
languageName: node
linkType: hard
"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1":
version: 2.0.1
resolution: "@types/istanbul-lib-coverage@npm:2.0.1"
@@ -1851,7 +1876,28 @@ __metadata:
languageName: node
linkType: hard
"@types/react@npm:*, @types/react@npm:^16.9.19":
"@types/react-router-dom@npm:^5.1.3":
version: 5.1.3
resolution: "@types/react-router-dom@npm:5.1.3"
dependencies:
"@types/history": "*"
"@types/react": "*"
"@types/react-router": "*"
checksum: d7294469c9106cec64787a3a35fb1d0a0a72b8778a0916aa7ce2235c3819e756c16eccf83d8ef37e0f3b59824796bbb62fdd8fd900928e9ba4e8e0f44c3ffbd8
languageName: node
linkType: hard
"@types/react-router@npm:*":
version: 5.1.4
resolution: "@types/react-router@npm:5.1.4"
dependencies:
"@types/history": "*"
"@types/react": "*"
checksum: 8444e6bf981a74cbf0e1963c39dcb83f2a4ea0aee9bc5a6ed6f468f41d672afb21b5112e999bc2d3678339307d7865fb408b5965db86f9766de81710801a1dee
languageName: node
linkType: hard
"@types/react@npm:*, @types/react@npm:^16.8.23, @types/react@npm:^16.9.11, @types/react@npm:^16.9.19":
version: 16.9.19
resolution: "@types/react@npm:16.9.19"
dependencies:
@@ -3105,6 +3151,16 @@ __metadata:
languageName: node
linkType: hard
"bootstrap@npm:^4.4.1":
version: 4.4.1
resolution: "bootstrap@npm:4.4.1"
peerDependencies:
jquery: 1.9.1 - 3
popper.js: ^1.16.0
checksum: 74215228c5b9c1e4c78dba3dabd4a7dea3e92e2559d98491c3c7ca866d8e38f123279a8ca35fdeff6f6d1f2cb7e34a73e8a1a6101e171a446061e6d3515bfa97
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.11
resolution: "brace-expansion@npm:1.1.11"
@@ -3610,6 +3666,13 @@ __metadata:
languageName: node
linkType: hard
"classnames@npm:^2.2.6":
version: 2.2.6
resolution: "classnames@npm:2.2.6"
checksum: f04e8b5b3ee2c7c4deec538752f364c6e61bf4459e011dd12553bcab87d25b4d5778a6e48a2f704b2ae65b1e89b727046c102aa4a3a91e522723f96771286095
languageName: node
linkType: hard
"clean-css@npm:^4.2.1":
version: 4.2.3
resolution: "clean-css@npm:4.2.3"
@@ -4407,7 +4470,7 @@ __metadata:
languageName: node
linkType: hard
"csstype@npm:^2.2.0":
"csstype@npm:^2.2.0, csstype@npm:^2.6.7":
version: 2.6.8
resolution: "csstype@npm:2.6.8"
checksum: eb432a104d39690548da78a9064138fee2e33773d1b4b069f79e7e8bd8a38c8267a0b1c4e75c808880e9ba4093997222fd46d33d0cb4820dffa123c06809b87a
@@ -4617,16 +4680,23 @@ __metadata:
"@types/prop-types": ^15.7.3
"@types/react": ^16.9.19
"@types/react-dom": ^16.9.5
"@types/react-router-dom": ^5.1.3
"@typescript-eslint/eslint-plugin": ^2.19.2
"@typescript-eslint/parser": ^2.19.2
bootstrap: ^4.4.1
eslint: ^6.8.0
eslint-config-prettier: ^6.10.0
eslint-plugin-prettier: ^3.1.2
eslint-plugin-react: ^7.18.3
jquery: ^3.4.1
popper.js: ^1.16.1
prettier: ^1.19.1
react: ^16.12.0
react-bootstrap: ^1.0.0-beta.16
react-dom: ^16.12.0
react-router-dom: ^5.1.2
react-scripts: 3.3.1
store: ^2.0.12
typescript: ~3.7.2
languageName: unknown
linkType: soft
@@ -4782,6 +4852,16 @@ __metadata:
languageName: node
linkType: hard
"dom-helpers@npm:^5.0.1, dom-helpers@npm:^5.1.0, dom-helpers@npm:^5.1.2":
version: 5.1.3
resolution: "dom-helpers@npm:5.1.3"
dependencies:
"@babel/runtime": ^7.6.3
csstype: ^2.6.7
checksum: 60610e9e5ab15cffd207a208057683d8600004a93b999baec7672b8d96e78388d6f3ffeda1047e32aca7dac907a451b118b247ec069aac7882381062e5180257
languageName: node
linkType: hard
"dom-serializer@npm:0":
version: 0.2.2
resolution: "dom-serializer@npm:0.2.2"
@@ -6333,6 +6413,13 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"gud@npm:^1.0.0":
version: 1.0.0
resolution: "gud@npm:1.0.0"
checksum: 4206e983e79c58b47d88b82555cae8ff926b690abc382885f6388e69839953da1a9d79fc41532a2f0e3eb636cf998c6eb017cf6c8d26c01f09c9594a029a2f85
languageName: node
linkType: hard
"gzip-size@npm:5.1.1":
version: 5.1.1
resolution: "gzip-size@npm:5.1.1"
@@ -6495,6 +6582,20 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"history@npm:^4.9.0":
version: 4.10.1
resolution: "history@npm:4.10.1"
dependencies:
"@babel/runtime": ^7.1.2
loose-envify: ^1.2.0
resolve-pathname: ^3.0.0
tiny-invariant: ^1.0.2
tiny-warning: ^1.0.0
value-equal: ^1.0.1
checksum: b3ede0b2a4e2b0b4f354a41a0e4158b09b1a8acd72a68e0da143a3989e2306fe271f41bfd7d0f7b9c1e8254b0f47c8da95e7433f7d9fda97c3f248fd3bb9839a
languageName: node
linkType: hard
"hmac-drbg@npm:^1.0.0":
version: 1.0.1
resolution: "hmac-drbg@npm:1.0.1"
@@ -6506,6 +6607,15 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"hoist-non-react-statics@npm:^3.1.0":
version: 3.3.2
resolution: "hoist-non-react-statics@npm:3.3.2"
dependencies:
react-is: ^16.7.0
checksum: 0149f2c7a4ffc9e5d0550ac3dd19592673c1c8f1d0881e8db5641502c5d16900ecbd4b70b50c4086d4cafb05d2b84ba01ac06ad575bdf3ef742c97893b7273d1
languageName: node
linkType: hard
"hosted-git-info@npm:^2.1.4":
version: 2.8.5
resolution: "hosted-git-info@npm:2.8.5"
@@ -7371,6 +7481,13 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"isarray@npm:0.0.1":
version: 0.0.1
resolution: "isarray@npm:0.0.1"
checksum: 86e6b850bfa7b1851b557982f80e35dd4dfe972828b0b1a90ec0e51199d6b4f435953756b03002721f5e43ea4ebc5d6bad05c5c1e158c3ff2cdf749f67e067ee
languageName: node
linkType: hard
"isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0":
version: 1.0.0
resolution: "isarray@npm:1.0.0"
@@ -7925,6 +8042,13 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"jquery@npm:^3.4.1":
version: 3.4.1
resolution: "jquery@npm:3.4.1"
checksum: 912129f738780ca34c502a4d403b9c79019b49bc254ef4be9e0144b68e2cee5ad1eb2f374bb28ac2499f13eae49fdc1208755080d78cb763e14ca0818cdd3f8f
languageName: node
linkType: hard
"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
version: 4.0.0
resolution: "js-tokens@npm:4.0.0"
@@ -8158,6 +8282,13 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"keycode@npm:^2.2.0":
version: 2.2.0
resolution: "keycode@npm:2.2.0"
checksum: f1ea952f138df208b657aa1e5c09e8cf6231c6334c7984f68ead5a7cc42363ba370d4b9ae862f1c45378d19d9581aa3fe0a99bdce62294d1c39cfc6d81702f22
languageName: node
linkType: hard
"killable@npm:^1.0.1":
version: 1.0.1
resolution: "killable@npm:1.0.1"
@@ -8428,7 +8559,7 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"
dependencies:
@@ -8698,6 +8829,20 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"mini-create-react-context@npm:^0.3.0":
version: 0.3.2
resolution: "mini-create-react-context@npm:0.3.2"
dependencies:
"@babel/runtime": ^7.4.0
gud: ^1.0.0
tiny-warning: ^1.0.2
peerDependencies:
prop-types: ^15.0.0
react: ^0.14.0 || ^15.0.0 || ^16.0.0
checksum: 4c6b8b2c5f1ef0d49b721b7e193b66e5de475048a2b0699f3a1ba1af4fd6d8c566cfd2d40d96a8c1bc044ead4b48c74ce9fe02b96281ade39681c36740cf44f9
languageName: node
linkType: hard
"mini-css-extract-plugin@npm:0.9.0":
version: 0.9.0
resolution: "mini-css-extract-plugin@npm:0.9.0"
@@ -9839,6 +9984,15 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"path-to-regexp@npm:^1.7.0":
version: 1.8.0
resolution: "path-to-regexp@npm:1.8.0"
dependencies:
isarray: 0.0.1
checksum: eda596fc89018b69ba46e7dd6ffbd83b4845dade9946c2a8d47c119e24f1cd3a1a35b13c0f89a4144ac355d2aa9e0bf631069679278cef284338cc00a98eeaa0
languageName: node
linkType: hard
"path-type@npm:^2.0.0":
version: 2.0.0
resolution: "path-type@npm:2.0.0"
@@ -9998,6 +10152,13 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"popper.js@npm:^1.15.0, popper.js@npm:^1.16.0, popper.js@npm:^1.16.1":
version: 1.16.1
resolution: "popper.js@npm:1.16.1"
checksum: 2bee5c5dd2db53b27b540093b292745880b31453d91722e216814f1aa42bb07ec83ae2d0a0b43521b8f47be46a41499b79e6685bdeee43327d445c92b03892ae
languageName: node
linkType: hard
"portfinder@npm:^1.0.25":
version: 1.0.25
resolution: "portfinder@npm:1.0.25"
@@ -10945,6 +11106,18 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"prop-types-extra@npm:^1.1.0":
version: 1.1.1
resolution: "prop-types-extra@npm:1.1.1"
dependencies:
react-is: ^16.3.2
warning: ^4.0.0
peerDependencies:
react: ">=0.14.0"
checksum: 604b80ff48d006dc2bfdede235cd06eb98a6c0a1396311181ea31ce9fbb5fb901ce9c06097c52cd9fd7d3f127e89e66a1c4009c91195c223d6ef412d47c2590e
languageName: node
linkType: hard
"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
version: 15.7.2
resolution: "prop-types@npm:15.7.2"
@@ -11173,6 +11346,32 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"react-bootstrap@npm:^1.0.0-beta.16":
version: 1.0.0-beta.16
resolution: "react-bootstrap@npm:1.0.0-beta.16"
dependencies:
"@babel/runtime": ^7.4.2
"@restart/context": ^2.1.4
"@restart/hooks": ^0.3.11
"@types/react": ^16.8.23
classnames: ^2.2.6
dom-helpers: ^5.1.2
invariant: ^2.2.4
keycode: ^2.2.0
popper.js: ^1.16.0
prop-types: ^15.7.2
prop-types-extra: ^1.1.0
react-overlays: ^2.1.0
react-transition-group: ^4.0.0
uncontrollable: ^7.0.0
warning: ^4.0.3
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
checksum: 69225d3dfb6dc02b092c4a4ebe6f274794a430ec4ae40fecbad70ea5c12dc7835f32eacd06affb07e80e9abea8dbcc98db14a5d06485a0636a79edc991c4ea22
languageName: node
linkType: hard
"react-dev-utils@npm:^10.1.0":
version: 10.1.0
resolution: "react-dev-utils@npm:10.1.0"
@@ -11226,13 +11425,75 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"react-is@npm:^16.8.1, react-is@npm:^16.8.4":
"react-is@npm:^16.3.2, react-is@npm:^16.6.0, react-is@npm:^16.7.0, react-is@npm:^16.8.1, react-is@npm:^16.8.4":
version: 16.12.0
resolution: "react-is@npm:16.12.0"
checksum: 1cc13815109812213f5f1e15718551c2c4b3c164b447bd35ceba920dc268c5f0710617f12076d9b8100edd4a7e935f76bf19abe745068e387ff2670b3a3fdb0d
languageName: node
linkType: hard
"react-lifecycles-compat@npm:^3.0.4":
version: 3.0.4
resolution: "react-lifecycles-compat@npm:3.0.4"
checksum: 5845821224611602cb37ea3947d73efe619666a2f8ad7dbadd82bcdae823c499de214d39b3503e9fbf8da3daa2c2483e21ce01bdd65d6cce99dd2f42e3c838dc
languageName: node
linkType: hard
"react-overlays@npm:^2.1.0":
version: 2.1.1
resolution: "react-overlays@npm:2.1.1"
dependencies:
"@babel/runtime": ^7.4.5
"@restart/hooks": ^0.3.12
dom-helpers: ^5.1.0
popper.js: ^1.15.0
prop-types: ^15.7.2
uncontrollable: ^7.0.0
warning: ^4.0.3
peerDependencies:
react: ">=16.3.0"
react-dom: ">=16.3.0"
checksum: 8cbf8770ffd4ea2e4c6cbe227513dce3e8fc5142ea6d0ed9ec94f81f738be36101a0abca10e4d9726b969a2cb2764db79e2051a174df855b9cd3fd4cc6447067
languageName: node
linkType: hard
"react-router-dom@npm:^5.1.2":
version: 5.1.2
resolution: "react-router-dom@npm:5.1.2"
dependencies:
"@babel/runtime": ^7.1.2
history: ^4.9.0
loose-envify: ^1.3.1
prop-types: ^15.6.2
react-router: 5.1.2
tiny-invariant: ^1.0.2
tiny-warning: ^1.0.0
peerDependencies:
react: ">=15"
checksum: 88239aeeadfc9e2e7ae15d11aa6691cc010c8d7d2185720d6636655810922e122aca1a967b60fd6df90e0ec484aac98bf4c3b2d3c3a9e09bb313a19616893a68
languageName: node
linkType: hard
"react-router@npm:5.1.2":
version: 5.1.2
resolution: "react-router@npm:5.1.2"
dependencies:
"@babel/runtime": ^7.1.2
history: ^4.9.0
hoist-non-react-statics: ^3.1.0
loose-envify: ^1.3.1
mini-create-react-context: ^0.3.0
path-to-regexp: ^1.7.0
prop-types: ^15.6.2
react-is: ^16.6.0
tiny-invariant: ^1.0.2
tiny-warning: ^1.0.0
peerDependencies:
react: ">=15"
checksum: 2e8466ade3c7be3a771333c15e8ea3ec736a2c0a0e0b8f42078031f3b99da40ef00fe274e1dc44c556b4b6e9b8e8a248180fe53e98e18ea8d76a631af7461141
languageName: node
linkType: hard
"react-scripts@npm:3.3.1":
version: 3.3.1
resolution: "react-scripts@npm:3.3.1"
@@ -11304,6 +11565,21 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"react-transition-group@npm:^4.0.0":
version: 4.3.0
resolution: "react-transition-group@npm:4.3.0"
dependencies:
"@babel/runtime": ^7.5.5
dom-helpers: ^5.0.1
loose-envify: ^1.4.0
prop-types: ^15.6.2
peerDependencies:
react: ">=16.6.0"
react-dom: ">=16.6.0"
checksum: 2ce975dfa41b8b15be8980323f551efda758ba1cb45e5b305d25eb230de8272a1fa04469ff7b2846588c6a728030c27f52bce25a7d92956382435352edd3aa37
languageName: node
linkType: hard
"react@npm:^16.12.0":
version: 16.12.0
resolution: "react@npm:16.12.0"
@@ -11687,6 +11963,13 @@ fsevents@^1.2.7:
languageName: node
linkType: hard
"resolve-pathname@npm:^3.0.0":
version: 3.0.0
resolution: "resolve-pathname@npm:3.0.0"
checksum: df30117fb84505a9b8b059635c524cf48b943b44e288dc488e60c1d2f3781996bfb172b1995a026c4d391acd691564c196bbfc9461eb85463d00165dfdac06d8
languageName: node
linkType: hard
"resolve-url-loader@npm:3.1.1":
version: 3.1.1
resolution: "resolve-url-loader@npm:3.1.1"
@@ -12550,6 +12833,13 @@ resolve@1.1.7:
languageName: node
linkType: hard
"store@npm:^2.0.12":
version: 2.0.12
resolution: "store@npm:2.0.12"
checksum: 101053f2842b6a186d8556ef5a176feb4494cfe4a182b454c5c7150362c67344abafd8e012c7769ea51745cdff38447c3e0c9d5ef36740bcc65e174adb605309
languageName: node
linkType: hard
"stream-browserify@npm:^2.0.1":
version: 2.0.2
resolution: "stream-browserify@npm:2.0.2"
@@ -13051,6 +13341,20 @@ resolve@1.1.7:
languageName: node
linkType: hard
"tiny-invariant@npm:^1.0.2":
version: 1.1.0
resolution: "tiny-invariant@npm:1.1.0"
checksum: cefe17857695cf05861e206bef8543e966eed89b89f0a76aaa9d322e2142e2c307a10be0532b4e9194904100972aee30832df995e0c8b83e9694d4ee4f0ab08d
languageName: node
linkType: hard
"tiny-warning@npm:^1.0.0, tiny-warning@npm:^1.0.2":
version: 1.0.3
resolution: "tiny-warning@npm:1.0.3"
checksum: 568fd064d0f4f2249a3afd5b91fc2a1e09c71378fd96ee437f5524cda976b127a20ee3ccb0d2db224a492c03fd5a077ff052cbd89253d77772cf4fdbfc7cb79b
languageName: node
linkType: hard
"tmp@npm:^0.0.33":
version: 0.0.33
resolution: "tmp@npm:0.0.33"
@@ -13277,6 +13581,20 @@ typescript@~3.7.2:
languageName: node
linkType: hard
"uncontrollable@npm:^7.0.0":
version: 7.1.1
resolution: "uncontrollable@npm:7.1.1"
dependencies:
"@babel/runtime": ^7.6.3
"@types/react": ^16.9.11
invariant: ^2.2.4
react-lifecycles-compat: ^3.0.4
peerDependencies:
react: ">=15.0.0"
checksum: 92d028d8f0ec48e46a8f2cce09178d57287b518610b7c59bf27f090317ef22ce4abdd8a1231622c604bb38ba6936196318017fb4b8c5484dcf3b3c4fd588a25b
languageName: node
linkType: hard
"unicode-canonical-property-names-ecmascript@npm:^1.0.4":
version: 1.0.4
resolution: "unicode-canonical-property-names-ecmascript@npm:1.0.4"
@@ -13544,6 +13862,13 @@ typescript@~3.7.2:
languageName: node
linkType: hard
"value-equal@npm:^1.0.1":
version: 1.0.1
resolution: "value-equal@npm:1.0.1"
checksum: 0b317308c9904f5315b37da28e4960a18a6081fdc1eb484cab64d655a03149f5c9e0f7f7966b1d2c70c466daabfa32fce496c719fdb5a8e4b0072cbda892b8ab
languageName: node
linkType: hard
"vary@npm:~1.1.2":
version: 1.1.2
resolution: "vary@npm:1.1.2"
@@ -13612,6 +13937,15 @@ typescript@~3.7.2:
languageName: node
linkType: hard
"warning@npm:^4.0.0, warning@npm:^4.0.3":
version: 4.0.3
resolution: "warning@npm:4.0.3"
dependencies:
loose-envify: ^1.0.0
checksum: 9247849134865f0fde7c5e0c76f5d12c4c641d2c252b9d707313491705f823c4cba24d383c07b7a32e1511b354c9533a9730239bfef6641e3e0f03da2f7c6a26
languageName: node
linkType: hard
"watchpack@npm:^1.6.0":
version: 1.6.0
resolution: "watchpack@npm:1.6.0"