From 492dedc36ea82b2bbb725e74db53057ad31edbee Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Tue, 6 Aug 2019 17:04:31 +0200
Subject: [PATCH 01/12] npm fixes
---
package-lock.json | 559 ++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 521 insertions(+), 38 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 47b084a03..900fb240a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6245,13 +6245,13 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
- "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
"optional": true,
"requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
},
"dependencies": {
"abbrev": {
@@ -6270,7 +6270,7 @@
"optional": true
},
"are-we-there-yet": {
- "version": "1.1.4",
+ "version": "1.1.5",
"bundled": true,
"optional": true,
"requires": {
@@ -6293,7 +6293,7 @@
}
},
"chownr": {
- "version": "1.0.1",
+ "version": "1.1.1",
"bundled": true,
"optional": true
},
@@ -6318,15 +6318,15 @@
"optional": true
},
"debug": {
- "version": "2.6.9",
+ "version": "4.1.1",
"bundled": true,
"optional": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"deep-extend": {
- "version": "0.5.1",
+ "version": "0.6.0",
"bundled": true,
"optional": true
},
@@ -6369,7 +6369,7 @@
}
},
"glob": {
- "version": "7.1.2",
+ "version": "7.1.3",
"bundled": true,
"optional": true,
"requires": {
@@ -6387,11 +6387,11 @@
"optional": true
},
"iconv-lite": {
- "version": "0.4.21",
+ "version": "0.4.24",
"bundled": true,
"optional": true,
"requires": {
- "safer-buffer": "^2.1.0"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
@@ -6448,16 +6448,16 @@
"optional": true
},
"minipass": {
- "version": "2.2.4",
+ "version": "2.3.5",
"bundled": true,
"optional": true,
"requires": {
- "safe-buffer": "^5.1.1",
+ "safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
}
},
"minizlib": {
- "version": "1.1.0",
+ "version": "1.2.1",
"bundled": true,
"optional": true,
"requires": {
@@ -6473,32 +6473,32 @@
}
},
"ms": {
- "version": "2.0.0",
+ "version": "2.1.1",
"bundled": true,
"optional": true
},
"needle": {
- "version": "2.2.0",
+ "version": "2.3.0",
"bundled": true,
"optional": true,
"requires": {
- "debug": "^2.1.2",
+ "debug": "^4.1.0",
"iconv-lite": "^0.4.4",
"sax": "^1.2.4"
}
},
"node-pre-gyp": {
- "version": "0.10.0",
+ "version": "0.12.0",
"bundled": true,
"optional": true,
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.1",
- "needle": "^2.2.0",
+ "needle": "^2.2.1",
"nopt": "^4.0.1",
"npm-packlist": "^1.1.6",
"npmlog": "^4.0.2",
- "rc": "^1.1.7",
+ "rc": "^1.2.7",
"rimraf": "^2.6.1",
"semver": "^5.3.0",
"tar": "^4"
@@ -6514,12 +6514,12 @@
}
},
"npm-bundled": {
- "version": "1.0.3",
+ "version": "1.0.6",
"bundled": true,
"optional": true
},
"npm-packlist": {
- "version": "1.1.10",
+ "version": "1.4.1",
"bundled": true,
"optional": true,
"requires": {
@@ -6586,11 +6586,11 @@
"optional": true
},
"rc": {
- "version": "1.2.7",
+ "version": "1.2.8",
"bundled": true,
"optional": true,
"requires": {
- "deep-extend": "^0.5.1",
+ "deep-extend": "^0.6.0",
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
@@ -6618,15 +6618,15 @@
}
},
"rimraf": {
- "version": "2.6.2",
+ "version": "2.6.3",
"bundled": true,
"optional": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "^7.1.3"
}
},
"safe-buffer": {
- "version": "5.1.1",
+ "version": "5.1.2",
"bundled": true,
"optional": true
},
@@ -6641,7 +6641,7 @@
"optional": true
},
"semver": {
- "version": "5.5.0",
+ "version": "5.7.0",
"bundled": true,
"optional": true
},
@@ -6687,16 +6687,16 @@
"optional": true
},
"tar": {
- "version": "4.4.1",
+ "version": "4.4.8",
"bundled": true,
"optional": true,
"requires": {
- "chownr": "^1.0.1",
+ "chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
- "minipass": "^2.2.4",
- "minizlib": "^1.1.0",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
"mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.1",
+ "safe-buffer": "^5.1.2",
"yallist": "^3.0.2"
}
},
@@ -6706,11 +6706,11 @@
"optional": true
},
"wide-align": {
- "version": "1.1.2",
+ "version": "1.1.3",
"bundled": true,
"optional": true,
"requires": {
- "string-width": "^1.0.2"
+ "string-width": "^1.0.2 || 2"
}
},
"wrappy": {
@@ -6719,7 +6719,7 @@
"optional": true
},
"yallist": {
- "version": "3.0.2",
+ "version": "3.0.3",
"bundled": true,
"optional": true
}
@@ -12746,6 +12746,489 @@
"webpack-dev-server": "3.1.14",
"webpack-manifest-plugin": "2.0.4",
"workbox-webpack-plugin": "3.6.3"
+ },
+ "dependencies": {
+ "fsevents": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+ "optional": true,
+ "requires": {
+ "nan": "^2.9.2",
+ "node-pre-gyp": "^0.10.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.5.1",
+ "bundled": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.21",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "optional": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "optional": true
+ },
+ "minipass": {
+ "version": "2.2.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.2.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "debug": "^2.1.2",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.10.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.0",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.1.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "bundled": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.7",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.5.1",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.0.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.2.4",
+ "minizlib": "^1.1.0",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ }
}
},
"read-pkg": {
From 0ed175a64c594641330eefcb034744e19e1d9156 Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Tue, 6 Aug 2019 17:44:30 +0200
Subject: [PATCH 02/12] IdCard, Greetings, Random components
---
src/App.js | 23 +++++++++++++++++++----
src/components/Greetings.js | 14 ++++++++++++++
src/components/IdCard.js | 21 +++++++++++++++++++++
src/components/Random.js | 15 +++++++++++++++
4 files changed, 69 insertions(+), 4 deletions(-)
create mode 100644 src/components/Greetings.js
create mode 100644 src/components/IdCard.js
create mode 100644 src/components/Random.js
diff --git a/src/App.js b/src/App.js
index e7ca67f20..ebb80fe71 100755
--- a/src/App.js
+++ b/src/App.js
@@ -1,14 +1,29 @@
import React, { Component } from 'react';
+import IdCard from './components/IdCard';
+import Greetings from './components/Greetings';
+import Random from './components/Random';
class App extends Component {
render() {
return (
-
IdCard
- {/* TODO: Use the IdCard component */}
+ IdCard
+
- Greetings
- {/* TODO: Use the Greetings component */}
+ Greetings
+
+ Ludwig
+
+
+ Random
+
+
);
}
diff --git a/src/components/Greetings.js b/src/components/Greetings.js
new file mode 100644
index 000000000..2f609bb4b
--- /dev/null
+++ b/src/components/Greetings.js
@@ -0,0 +1,14 @@
+import React, { Component } from 'react'
+
+class Greetings extends Component {
+ render() {
+ const { lang, children } = this.props
+ return (
+ <>
+ Hallo {children}
+ >
+ )
+ }
+}
+
+export default Greetings
diff --git a/src/components/IdCard.js b/src/components/IdCard.js
new file mode 100644
index 000000000..d3f1c007b
--- /dev/null
+++ b/src/components/IdCard.js
@@ -0,0 +1,21 @@
+import React, { Component } from 'react'
+
+class IdCard extends Component {
+ render() {
+ const { lastName, firstName, gender, height, birth, picture } = this.props;
+ const birthDate = birth.toDateString();
+ return (
+
+

+
{firstName}
+
{lastName}
+
{gender}
+
{height}
+
{birthDate}
+
+ )
+ }
+}
+
+export default IdCard
+
diff --git a/src/components/Random.js b/src/components/Random.js
new file mode 100644
index 000000000..3aacc5d0c
--- /dev/null
+++ b/src/components/Random.js
@@ -0,0 +1,15 @@
+import React, { Component } from 'react'
+
+class Random extends Component {
+ render() {
+ const { min, max } = this.props
+ const randomValue = () => Math.round(Math.random() * (max - min) + min)
+ return (
+
+ Random value between {min} and {max} => {randomValue()}
+ div>
+ )
+ }
+}
+
+export default Random
From 0b376192683fc85abc26507d4859cc5873207bee Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Tue, 6 Aug 2019 19:46:08 +0200
Subject: [PATCH 03/12] Box color component
---
src/App.js | 7 +++++++
src/components/BoxColor.js | 21 +++++++++++++++++++++
2 files changed, 28 insertions(+)
create mode 100644 src/components/BoxColor.js
diff --git a/src/App.js b/src/App.js
index ebb80fe71..190bca633 100755
--- a/src/App.js
+++ b/src/App.js
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import IdCard from './components/IdCard';
import Greetings from './components/Greetings';
import Random from './components/Random';
+import BoxColor from './components/BoxColor';
class App extends Component {
render() {
@@ -24,9 +25,15 @@ class App extends Component {
Random
+
+ Box Color
+
+
);
}
}
export default App;
+
+
diff --git a/src/components/BoxColor.js b/src/components/BoxColor.js
new file mode 100644
index 000000000..d32447768
--- /dev/null
+++ b/src/components/BoxColor.js
@@ -0,0 +1,21 @@
+import React from 'react'
+
+function BoxColor(props) {
+ const { r, g, b } = props
+ const colorString = 'rgb(' + r + ',' + g + ',' + b + ')'
+ // console.log(colorString)
+ const divStyle = {
+ backgroundColor: colorString,
+ //backgroundColor: 'rgb(' + r + ',' + g + ',' + b + ')',
+ height: '10rem',
+ width: '10rem'
+ }
+ return (
+
+ {colorString}
+
+ )
+}
+
+export default BoxColor
+
From c4122402b43c65982a84412217db4cda4ee73d4a Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Tue, 6 Aug 2019 22:41:18 +0200
Subject: [PATCH 04/12] Credit Card component
---
src/App.js | 35 +++++++++++++++++++++++++++++++++++
src/components/CreditCard.js | 30 ++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+)
create mode 100644 src/components/CreditCard.js
diff --git a/src/App.js b/src/App.js
index 190bca633..4c35836dd 100755
--- a/src/App.js
+++ b/src/App.js
@@ -3,6 +3,7 @@ import IdCard from './components/IdCard';
import Greetings from './components/Greetings';
import Random from './components/Random';
import BoxColor from './components/BoxColor';
+import CreditCard from './components/CreditCard';
class App extends Component {
render() {
@@ -29,6 +30,40 @@ class App extends Component {
Box Color
+
+ Credit Card
+
+
+
+
+
);
}
diff --git a/src/components/CreditCard.js b/src/components/CreditCard.js
new file mode 100644
index 000000000..6c94cc7cd
--- /dev/null
+++ b/src/components/CreditCard.js
@@ -0,0 +1,30 @@
+import React from 'react'
+
+function CreditCard(props) {
+ const divStyle = {
+ backgroundColor: props.bgColor,
+ color: props.color,
+ display: 'flex',
+ flexFlow: 'column nowrap'
+ }
+
+ const cardType = props.type === 'Visa' ? './img/visa.png' : './img/master-card.svg'
+
+ const maskNumber = (number) => {
+ return number.slice(0, -4).replace(/./g, '·') + number.slice(-4)
+ }
+
+ return (
+
+

+ < p className="card-number" > {maskNumber(props.number)}
+
+
Expires: {props.expirationMonth} / {props.expirationYear}
+
{props.bank}
+
+
{props.owner}
+
+ )
+}
+
+export default CreditCard
\ No newline at end of file
From 83665e65fdccedff2bef8090579fb35f7801cf62 Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Wed, 7 Aug 2019 09:02:47 +0200
Subject: [PATCH 05/12] Some styles
---
src/App.js | 114 +++++++++++++++++++----------------
src/components/BoxColor.js | 4 +-
src/components/CreditCard.js | 14 ++---
src/components/Greetings.js | 2 +-
src/components/IdCard.js | 14 +++--
src/index.css | 59 +++++++++++++++++-
6 files changed, 138 insertions(+), 69 deletions(-)
diff --git a/src/App.js b/src/App.js
index 4c35836dd..d45ea2569 100755
--- a/src/App.js
+++ b/src/App.js
@@ -9,61 +9,73 @@ class App extends Component {
render() {
return (
-
IdCard
-
+
-
Greetings
-
- Ludwig
-
+
+ Greetings
+
+ Hallo Ludwig
+
+
-
Random
-
-
+
-
Box Color
-
-
+
-
Credit Card
-
-
-
-
-
+
+ Credit Card
+
+
+
+
+
+
);
}
diff --git a/src/components/BoxColor.js b/src/components/BoxColor.js
index d32447768..90d92aab9 100644
--- a/src/components/BoxColor.js
+++ b/src/components/BoxColor.js
@@ -8,7 +8,9 @@ function BoxColor(props) {
backgroundColor: colorString,
//backgroundColor: 'rgb(' + r + ',' + g + ',' + b + ')',
height: '10rem',
- width: '10rem'
+ width: '10rem',
+ padding: '2rem',
+ textAlign: 'center'
}
return (
diff --git a/src/components/CreditCard.js b/src/components/CreditCard.js
index 6c94cc7cd..e986fdfc5 100644
--- a/src/components/CreditCard.js
+++ b/src/components/CreditCard.js
@@ -15,14 +15,14 @@ function CreditCard(props) {
}
return (
-
-

- < p className="card-number" > {maskNumber(props.number)}
-
-
Expires: {props.expirationMonth} / {props.expirationYear}
-
{props.bank}
+
+

+
{maskNumber(props.number)}
+
+
Expires: {props.expirationMonth} / {props.expirationYear}
+
{props.bank}
-
{props.owner}
+
{props.owner}
)
}
diff --git a/src/components/Greetings.js b/src/components/Greetings.js
index 2f609bb4b..cb33a7694 100644
--- a/src/components/Greetings.js
+++ b/src/components/Greetings.js
@@ -5,7 +5,7 @@ class Greetings extends Component {
const { lang, children } = this.props
return (
<>
-
Hallo {children}
+
{children}
>
)
}
diff --git a/src/components/IdCard.js b/src/components/IdCard.js
index d3f1c007b..394eac993 100644
--- a/src/components/IdCard.js
+++ b/src/components/IdCard.js
@@ -6,12 +6,14 @@ class IdCard extends Component {
const birthDate = birth.toDateString();
return (
-

-
{firstName}
-
{lastName}
-
{gender}
-
{height}
-
{birthDate}
+

+
+
{firstName}
+
{lastName}
+
{gender}
+
{height}
+
{birthDate}
+
)
}
diff --git a/src/index.css b/src/index.css
index cee5f348f..f042f00f7 100755
--- a/src/index.css
+++ b/src/index.css
@@ -1,6 +1,6 @@
body {
margin: 0;
- padding: 0;
+ padding: 2rem 3.5rem;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
sans-serif;
@@ -9,6 +9,59 @@ body {
}
code {
- font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
- monospace;
+ font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
}
+
+p {
+ margin: 0;
+}
+
+.challenge {
+ margin: 3.5rem 0;
+}
+
+.card-container,
+.card-info {
+ display: flex;
+}
+
+.card-info {
+ flex-flow: column nowrap;
+ justify-content: center;
+ line-height: 1.8;
+ padding: 0 1.5rem;
+}
+
+.card-image {
+ width: 10rem;
+ height: 10rem;
+}
+
+.boxed-text {
+ padding: 1.5rem;
+ border: 1px solid #fabada;
+}
+
+.boxed-text {
+ margin-bottom: .5rem;
+}
+
+.boxes-container {
+ display: flex;
+ flex-flow: row wrap;
+}
+
+.credit-cards {
+ display: flex;
+}
+
+.cc-container {
+ display: flex;
+ padding: 2rem;
+}
+
+.cc-brand {
+ width: 3.5rem;
+ height: auto;
+ align-self: flex-end;
+}
\ No newline at end of file
From 93deb9d4aab93c87e3a40baddf8fc7c309b1a124 Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 14:11:31 +0200
Subject: [PATCH 06/12] ColorToHex bonus
---
src/components/BoxColor.js | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/src/components/BoxColor.js b/src/components/BoxColor.js
index 90d92aab9..5bde25f58 100644
--- a/src/components/BoxColor.js
+++ b/src/components/BoxColor.js
@@ -6,15 +6,33 @@ function BoxColor(props) {
// console.log(colorString)
const divStyle = {
backgroundColor: colorString,
- //backgroundColor: 'rgb(' + r + ',' + g + ',' + b + ')',
- height: '10rem',
- width: '10rem',
+ // also works with backgroundColor: 'rgb(' + r + ',' + g + ',' + b + ')',
+ height: '9rem',
+ width: '9rem',
+ display: 'flex',
+ flexFlow: 'column wrap',
+ justifyContent: 'center',
padding: '2rem',
+ fontSize: '1.125rem',
textAlign: 'center'
}
+
+ const colorToHex = (color) => {
+ let hex = Number(color).toString(16);
+ return hex.length < 2 ? hex = '0' + hex : hex
+ }
+
+ let rgbToHex = (r, g, b) => {
+ const red = colorToHex(r);
+ const green = colorToHex(g);
+ const blue = colorToHex(b);
+ return red + green + blue;
+ }
+
return (
- {colorString}
+
{colorString}
+
#{rgbToHex(props.r, props.g, props.b)}
)
}
From ee43f74bf798b4a8b6da32af531de9903de93cbf Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 14:12:06 +0200
Subject: [PATCH 07/12] AddZero, RemoveDigits
---
src/components/CreditCard.js | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/components/CreditCard.js b/src/components/CreditCard.js
index e986fdfc5..1b5d8ad8c 100644
--- a/src/components/CreditCard.js
+++ b/src/components/CreditCard.js
@@ -11,7 +11,17 @@ function CreditCard(props) {
const cardType = props.type === 'Visa' ? './img/visa.png' : './img/master-card.svg'
const maskNumber = (number) => {
- return number.slice(0, -4).replace(/./g, '·') + number.slice(-4)
+ return number.slice(0, -4).replace(/./g, '• ') + number.slice(-4)
+ }
+
+ const addZero = (month) => {
+ const monthStr = month.toString();
+ return monthStr.length < 2 ? '0' + monthStr : monthStr;
+ }
+
+ const removeDigits = (year) => {
+ const yearStr = year.toString();
+ return yearStr.slice(0, -2).replace(/./g, '') + yearStr.slice(-2)
}
return (
@@ -19,7 +29,7 @@ function CreditCard(props) {
{maskNumber(props.number)}
-
Expires: {props.expirationMonth} / {props.expirationYear}
+
Expires: {addZero(props.expirationMonth)}/{removeDigits(props.expirationYear)}
{props.bank}
{props.owner}
From a27efbc6737e550bd10e358b869dedb375fb22f6 Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 14:12:20 +0200
Subject: [PATCH 08/12] RF styles to suit output
---
src/components/IdCard.js | 10 ++---
src/index.css | 89 +++++++++++++++++++++++++++++++++++-----
2 files changed, 84 insertions(+), 15 deletions(-)
diff --git a/src/components/IdCard.js b/src/components/IdCard.js
index 394eac993..a7fc81f53 100644
--- a/src/components/IdCard.js
+++ b/src/components/IdCard.js
@@ -8,11 +8,11 @@ class IdCard extends Component {
-
{firstName}
-
{lastName}
-
{gender}
-
{height}
-
{birthDate}
+
First Name:{firstName}
+
Last Name:{lastName}
+
Gender:{gender}
+
Height:{height}
+
Birth:{birthDate}
)
diff --git a/src/index.css b/src/index.css
index f042f00f7..133511a2a 100755
--- a/src/index.css
+++ b/src/index.css
@@ -1,6 +1,5 @@
body {
margin: 0;
- padding: 2rem 3.5rem;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
sans-serif;
@@ -17,24 +16,65 @@ p {
}
.challenge {
- margin: 3.5rem 0;
+ width: 100%;
+ padding: 3.5rem 1.5rem 0 1.5rem;
+}
+
+@media (min-width: 768px) {
+ .challenge {
+ padding: 4.5rem 3.5rem 0 3.5rem;
+ }
}
.card-container,
.card-info {
- display: flex;
+ display: inline-flex;
+ background-color: #fabada;
+}
+
+.card-container {
+ flex-flow: row wrap;
+ width: 100%;
+}
+
+@media (min-width: 768px) {
+ .card-container {
+ flex-flow: row wrap;
+ width: auto;
+ }
}
.card-info {
flex-flow: column nowrap;
justify-content: center;
- line-height: 1.8;
- padding: 0 1.5rem;
+ font-size: .875rem;
+ line-height: 1.2;
+ padding: 1rem;
+}
+
+@media (min-width: 768px) {
+ .card-info {
+ font-size: 1rem;
+ line-height: 1.8;
+ padding: 1.5rem;
+ }
}
.card-image {
- width: 10rem;
- height: 10rem;
+ width: 7rem;
+ height: auto;
+}
+
+@media (min-width: 768px) {
+ .card-image {
+ width: 12rem;
+ height: auto;
+ }
+}
+
+.card-label {
+ font-weight: 800;
+ margin: 0 .5rem 0 0;
}
.boxed-text {
@@ -43,6 +83,7 @@ p {
}
.boxed-text {
+ max-width: 23rem;
margin-bottom: .5rem;
}
@@ -53,15 +94,43 @@ p {
.credit-cards {
display: flex;
+ flex-flow: row wrap;
}
.cc-container {
display: flex;
- padding: 2rem;
+ width: 100%;
+ border-radius: .5rem;
+ padding: 1.25rem;
+ margin: 0 0 1rem 0;
+}
+
+@media (min-width: 768px) {
+ .cc-container {
+ width: 17.5rem;
+ padding: 2rem;
+ margin: 0 1rem 1rem 0;
+ }
}
.cc-brand {
- width: 3.5rem;
- height: auto;
+ width: auto;
+ height: 1.75rem;
align-self: flex-end;
+}
+
+.cc-number {
+ font-size: 1.65rem;
+ font-weight: 600;
+ padding: 1.5rem 0;
+ width: 100%;
+}
+
+.cc-info {
+ display: flex;
+ width: 100%;
+}
+
+.cc-expiration {
+ margin-right: 1.5rem;
}
\ No newline at end of file
From 1f5d6aaea31b30a6f9326c5e880c4ea548be0618 Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 15:02:42 +0200
Subject: [PATCH 09/12] Rating
---
src/App.js | 11 +++++++++++
src/components/Rating.js | 24 ++++++++++++++++++++++++
src/index.css | 26 ++++++++++++++++++++++----
3 files changed, 57 insertions(+), 4 deletions(-)
create mode 100644 src/components/Rating.js
diff --git a/src/App.js b/src/App.js
index d45ea2569..6d0b444be 100755
--- a/src/App.js
+++ b/src/App.js
@@ -4,6 +4,7 @@ import Greetings from './components/Greetings';
import Random from './components/Random';
import BoxColor from './components/BoxColor';
import CreditCard from './components/CreditCard';
+import Rating from './components/Rating';
class App extends Component {
render() {
@@ -76,11 +77,21 @@ class App extends Component {
/>
+
);
}
}
+
export default App;
diff --git a/src/components/Rating.js b/src/components/Rating.js
new file mode 100644
index 000000000..b043e110d
--- /dev/null
+++ b/src/components/Rating.js
@@ -0,0 +1,24 @@
+import React from 'react'
+
+function Rating(props) {
+ const value = Math.round(props.children);
+
+ const star = (rates) => {
+ let filled = '★';
+ let empty = '☆';
+ let stars = new Array(5);
+
+ for (let i = 0; i < 5; i++) {
+ i < rates ? stars[i] = filled : stars[i] = empty;
+ }
+ return stars.join('')
+ }
+
+ return (
+
+ {star(value)}
+
+ )
+}
+
+export default Rating
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
index 133511a2a..5c74272d2 100755
--- a/src/index.css
+++ b/src/index.css
@@ -16,12 +16,12 @@ p {
}
.challenge {
- width: 100%;
- padding: 3.5rem 1.5rem 0 1.5rem;
+ padding: 3.5rem 1rem 0 1rem;
}
@media (min-width: 768px) {
.challenge {
+ width: 100%;
padding: 4.5rem 3.5rem 0 3.5rem;
}
}
@@ -33,7 +33,7 @@ p {
}
.card-container {
- flex-flow: row wrap;
+ flex-flow: row nowrap;
width: 100%;
}
@@ -120,17 +120,35 @@ p {
}
.cc-number {
- font-size: 1.65rem;
+ font-size: 1.45rem;
font-weight: 600;
padding: 1.5rem 0;
width: 100%;
}
+@media (min-width: 768px) {
+ .cc-number {
+ font-size: 1.65rem;
+ }
+}
+
.cc-info {
display: flex;
width: 100%;
}
+.cc-info,
+.cc-owner {
+ font-size: .875rem;
+}
+
+@media (min-width: 768px) {
+ .cc-info,
+ .cc-owner {
+ font-size: 1rem;
+ }
+}
+
.cc-expiration {
margin-right: 1.5rem;
}
\ No newline at end of file
From 4f78376c84e18047eee483f5e80e2496ee29a6cf Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 17:32:26 +0200
Subject: [PATCH 10/12] DriverCard
---
src/App.js | 30 +++++++++++++++++--
src/components/DriverCard.js | 17 +++++++++++
src/index.css | 58 ++++++++++++++++++++++++++++++++++--
3 files changed, 100 insertions(+), 5 deletions(-)
create mode 100644 src/components/DriverCard.js
diff --git a/src/App.js b/src/App.js
index 6d0b444be..360b75415 100755
--- a/src/App.js
+++ b/src/App.js
@@ -5,6 +5,7 @@ import Random from './components/Random';
import BoxColor from './components/BoxColor';
import CreditCard from './components/CreditCard';
import Rating from './components/Rating';
+import DriverCard from './components/DriverCard';
class App extends Component {
render() {
@@ -30,8 +31,8 @@ class App extends Component {
@@ -86,12 +87,35 @@ class App extends Component {
+
);
+
}
}
-
export default App;
diff --git a/src/components/DriverCard.js b/src/components/DriverCard.js
new file mode 100644
index 000000000..edc87cb81
--- /dev/null
+++ b/src/components/DriverCard.js
@@ -0,0 +1,17 @@
+import React from 'react'
+import Rating from './Rating';
+
+function DriverCard(props) {
+ return (
+
+

+
+
{props.name}
+
+
{props.car.model}-{props.car.licensePlate}
+
+
+ )
+}
+
+export default DriverCard
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
index 5c74272d2..62fc8a364 100755
--- a/src/index.css
+++ b/src/index.css
@@ -21,7 +21,6 @@ p {
@media (min-width: 768px) {
.challenge {
- width: 100%;
padding: 4.5rem 3.5rem 0 3.5rem;
}
}
@@ -92,7 +91,8 @@ p {
flex-flow: row wrap;
}
-.credit-cards {
+.credit-cards,
+.driver-container {
display: flex;
flex-flow: row wrap;
}
@@ -151,4 +151,58 @@ p {
.cc-expiration {
margin-right: 1.5rem;
+}
+
+.driver-container {
+ display: flex;
+ justify-content: center;
+ text-align: center;
+ color: #fff;
+ background-color: #455EB3;
+ border-radius: .5rem;
+ padding: 1.25rem;
+ margin-bottom: 1rem;
+}
+
+@media (min-width: 768px) {
+ .driver-container {
+ padding: 2rem;
+ text-align: left;
+ }
+}
+
+.driver-image {
+ width: 6rem;
+ height: 6rem;
+ border-radius: 50%;
+}
+
+.driver-name {
+ margin-bottom: .5rem;
+}
+
+.driver-details {
+ margin: 0;
+}
+
+@media (min-width: 768px) {
+ .driver-details {
+ margin-left: 1.5rem;
+ }
+}
+
+.driver-rating {
+ display: flex;
+ justify-content: center;
+}
+
+@media (min-width: 768px) {
+ .driver-rating {
+ justify-content: flex-start;
+ }
+}
+
+
+.driver-car {
+ margin: .5rem 0 0 0;
}
\ No newline at end of file
From 6a550a31f8999076a13a223346368e6aba8810b2 Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 17:39:50 +0200
Subject: [PATCH 11/12] fix driver styles
---
src/index.css | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/index.css b/src/index.css
index 62fc8a364..f383302cb 100755
--- a/src/index.css
+++ b/src/index.css
@@ -178,7 +178,8 @@ p {
}
.driver-name {
- margin-bottom: .5rem;
+ font-size: 1.5rem;
+ margin: .5rem 0;
}
.driver-details {
From bdcde560cce95f6ed2bec799602bce36fbd1ac3a Mon Sep 17 00:00:00 2001
From: annacv <21217131+annacv@users.noreply.github.com>
Date: Sat, 10 Aug 2019 18:55:25 +0200
Subject: [PATCH 12/12] Like button
---
src/App.js | 10 +++++++++-
src/components/LikeButton.js | 25 +++++++++++++++++++++++++
src/index.css | 18 +++++++++++++++++-
3 files changed, 51 insertions(+), 2 deletions(-)
create mode 100644 src/components/LikeButton.js
diff --git a/src/App.js b/src/App.js
index 360b75415..44eebaf5d 100755
--- a/src/App.js
+++ b/src/App.js
@@ -6,6 +6,7 @@ import BoxColor from './components/BoxColor';
import CreditCard from './components/CreditCard';
import Rating from './components/Rating';
import DriverCard from './components/DriverCard';
+import LikeButton from './components/LikeButton';
class App extends Component {
render() {
@@ -110,9 +111,16 @@ class App extends Component {
className='driver-card'
/>
+
+
);
-
}
}
diff --git a/src/components/LikeButton.js b/src/components/LikeButton.js
new file mode 100644
index 000000000..c38008cef
--- /dev/null
+++ b/src/components/LikeButton.js
@@ -0,0 +1,25 @@
+import React, { Component } from 'react'
+
+class LikeButton extends Component {
+ state = {
+ number: 0,
+ text: 'Likes'
+ }
+
+ modifyNumber = (sum) => {
+ let newNumber = this.state.number
+ this.setState({
+ number: newNumber + sum
+ })
+ }
+
+ render() {
+ return (
+ <>
+
+ >
+ )
+ }
+}
+
+export default LikeButton
diff --git a/src/index.css b/src/index.css
index f383302cb..e8da473b8 100755
--- a/src/index.css
+++ b/src/index.css
@@ -203,7 +203,23 @@ p {
}
}
-
.driver-car {
margin: .5rem 0 0 0;
+}
+
+.buttons-container {
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: flex-start;
+}
+
+.button-counter {
+ font-size: 1.125rem;
+ font-weight: 600;
+ color: #000;
+ background-color: #fabada;
+ border: 2px solid #000;
+ border-radius: 1.5rem;
+ padding: .5rem 1rem;
+ margin: 0 1rem 0 0;
}
\ No newline at end of file