diff --git a/package-lock.json b/package-lock.json
index e90ca7d..7cf7a6c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,6 +34,12 @@
}
}
},
+ "@types/history": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.6.2.tgz",
+ "integrity": "sha512-eVAb52MJ4lfPLiO9VvTgv8KaZDEIqCwhv+lXOMLlt4C1YHTShgmMULEg0RrCbnqfYd6QKfHsMp0MiX0vWISpSw==",
+ "dev": true
+ },
"@types/jest": {
"version": "22.2.3",
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-22.2.3.tgz",
@@ -65,6 +71,16 @@
"@types/react": "16.3.9"
}
},
+ "@types/react-router": {
+ "version": "4.0.23",
+ "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.0.23.tgz",
+ "integrity": "sha512-o1yEm2Eimw7kwzJSamvBlAPXmhH14zL+AQOCgviGthMcqFVVmhZCv63PgxMZfq+PcfMIqP1O2Wq7BU94IXyVfQ==",
+ "dev": true,
+ "requires": {
+ "@types/history": "4.6.2",
+ "@types/react": "16.3.9"
+ }
+ },
"abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
@@ -1415,6 +1431,11 @@
"hoek": "4.2.1"
}
},
+ "bootstrap": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.0.tgz",
+ "integrity": "sha512-kCo82nE8qYVfOa/Z3hL98CPgPIEkh6iPdiJrUJMQ9n9r0+6PEET7cmhLlV0XVYmEj5QtKIOaSGMLxy5jSFhKog=="
+ },
"boxen": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
@@ -4792,6 +4813,18 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
},
+ "history": {
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz",
+ "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==",
+ "requires": {
+ "invariant": "2.2.4",
+ "loose-envify": "1.3.1",
+ "resolve-pathname": "2.2.0",
+ "value-equal": "0.4.0",
+ "warning": "3.0.0"
+ }
+ },
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@@ -9238,6 +9271,20 @@
"prop-types": "15.6.1"
}
},
+ "react-router": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz",
+ "integrity": "sha512-DY6pjwRhdARE4TDw7XjxjZsbx9lKmIcyZoZ+SDO7SBJ1KUeWNxT22Kara2AC7u6/c2SYEHlEDLnzBCcNhLE8Vg==",
+ "requires": {
+ "history": "4.7.2",
+ "hoist-non-react-statics": "2.5.0",
+ "invariant": "2.2.4",
+ "loose-envify": "1.3.1",
+ "path-to-regexp": "1.7.0",
+ "prop-types": "15.6.1",
+ "warning": "3.0.0"
+ }
+ },
"react-scripts-ts": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/react-scripts-ts/-/react-scripts-ts-2.14.0.tgz",
@@ -9645,6 +9692,11 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
},
+ "resolve-pathname": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
+ "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg=="
+ },
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@@ -10917,11 +10969,6 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
- "typesafe-actions": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/typesafe-actions/-/typesafe-actions-1.1.2.tgz",
- "integrity": "sha512-4SparTfwBOWjegg89Ls5Ia0L6N8mXu7tb/REA5KYEfRohsLM9Uc8jtAa8bRAhtCg1cQJnvJJMjljI7dfu1JjVg=="
- },
"typescript": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.1.tgz",
@@ -11292,6 +11339,11 @@
"spdx-expression-parse": "3.0.0"
}
},
+ "value-equal": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
+ "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw=="
+ },
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -11336,6 +11388,14 @@
"makeerror": "1.0.11"
}
},
+ "warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
"watch": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
diff --git a/package.json b/package.json
index 6cbc59c..e4b3354 100644
--- a/package.json
+++ b/package.json
@@ -3,25 +3,28 @@
"version": "0.1.0",
"private": true,
"dependencies": {
+ "bootstrap": "^4.1.0",
"mathjs": "^4.1.1",
"react": "^16.3.2",
"react-dom": "^16.3.1",
"react-redux": "^5.0.7",
+ "react-router": "^4.2.0",
"react-scripts-ts": "2.14.0",
- "redux": "^4.0.0",
- "typesafe-actions": "^1.1.2"
+ "redux": "^4.0.0"
},
"scripts": {
"start": "react-scripts-ts start",
"build": "react-scripts-ts build",
"test": "react-scripts-ts test --env=jsdom",
- "eject": "react-scripts-ts eject"
+ "eject": "react-scripts-ts eject",
+ "lint": "tslint --exclude **/*.d.ts src/**/*.ts src/**/*.tsx"
},
"devDependencies": {
"@types/jest": "^22.2.3",
"@types/node": "^9.6.4",
"@types/react": "^16.3.9",
"@types/react-dom": "^16.0.5",
+ "@types/react-router": "^4.2.0",
"typescript": "^2.8.1"
}
}
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644
index a11777c..0000000
Binary files a/public/favicon.ico and /dev/null differ
diff --git a/public/index.html b/public/index.html
index b7263e8..622567e 100644
--- a/public/index.html
+++ b/public/index.html
@@ -9,7 +9,6 @@
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
-->
-