From 54e6042f394d80ca9bad5cae4302851f708cce48 Mon Sep 17 00:00:00 2001 From: Ari-Pekka Kauppinen <aripekka.kauppinen@gmail.com> Date: Mon, 18 Mar 2019 16:27:38 +0200 Subject: [PATCH] Main view has now examples from favourite cities, clothes and space for sliders. --- wearright/package-lock.json | 233 +++++++++++++-------------- wearright/package.json | 1 + wearright/src/components/MainPage.js | 106 +++++++++--- wearright/src/styles/MainPage.css | 53 +++++- wearright/src/testimages/housut.png | Bin 0 -> 1978 bytes wearright/src/testimages/paita.png | Bin 0 -> 2231 bytes wearright/src/testimages/pipo.png | Bin 0 -> 2374 bytes 7 files changed, 252 insertions(+), 141 deletions(-) create mode 100644 wearright/src/testimages/housut.png create mode 100644 wearright/src/testimages/paita.png create mode 100644 wearright/src/testimages/pipo.png diff --git a/wearright/package-lock.json b/wearright/package-lock.json index a0acd17..761caad 100644 --- a/wearright/package-lock.json +++ b/wearright/package-lock.json @@ -2830,7 +2830,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2856,7 +2857,7 @@ "bundled": true, "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2959,7 +2960,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -2967,7 +2968,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2994,7 +2995,7 @@ "bundled": true, "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -3007,7 +3008,7 @@ "bundled": true, "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3050,9 +3051,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.24", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -3077,8 +3078,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -3091,8 +3092,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.5" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -3139,8 +3140,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -3158,10 +3159,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -3195,7 +3196,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -3227,9 +3229,9 @@ "bundled": true, "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -3237,14 +3239,15 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3281,11 +3284,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -6321,8 +6326,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -6346,8 +6351,7 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", @@ -6356,8 +6360,7 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -6392,7 +6395,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -6405,14 +6408,14 @@ "bundled": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "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": { @@ -6420,12 +6423,12 @@ "bundled": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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": { @@ -6438,7 +6441,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -6446,7 +6449,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -6454,14 +6457,13 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -6471,9 +6473,8 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -6484,23 +6485,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.2.4", "bundled": true, - "optional": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -6508,13 +6506,12 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -6529,9 +6526,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -6539,16 +6536,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -6556,8 +6553,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -6570,8 +6567,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -6579,16 +6576,15 @@ "bundled": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "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 + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -6598,9 +6594,8 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -6618,8 +6613,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -6637,10 +6632,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -6655,13 +6650,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -6669,7 +6664,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -6704,11 +6699,10 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -6716,14 +6710,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -6736,13 +6730,13 @@ "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.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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": { @@ -6755,7 +6749,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -12906,6 +12900,11 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.4.tgz", "integrity": "sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg==" }, + "react-icons": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-3.5.0.tgz", + "integrity": "sha512-LuKUcavgPWjPrRkIdNbsGw8LqcnhfNN0AGCtU4Td1UkOenJSIWbYppSJrD6zi/TDZOHtTs9opu6ZKB/NFWk21g==" + }, "react-is": { "version": "16.8.4", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.4.tgz", diff --git a/wearright/package.json b/wearright/package.json index 06c4c2a..c9c6ea7 100644 --- a/wearright/package.json +++ b/wearright/package.json @@ -5,6 +5,7 @@ "dependencies": { "react": "^16.8.4", "react-dom": "^16.8.4", + "react-icons": "^3.5.0", "react-scripts": "2.1.8", "universal-cookie": "^3.0.7" }, diff --git a/wearright/src/components/MainPage.js b/wearright/src/components/MainPage.js index ffb403d..35a3bc6 100644 --- a/wearright/src/components/MainPage.js +++ b/wearright/src/components/MainPage.js @@ -1,19 +1,40 @@ import React, { Component } from 'react'; import "../styles/MainPage.css" +import {FaStar, FaArrowLeft, FaArrowRight, FaBars } from 'react-icons/fa'; class MainPage extends Component { constructor(props) { super(props); this.state = { currentWeather : [], - isLoaded: false, - error: null + isLoaded: true, + error: null, + clothes: [], + location: [] + } - } + this.currentWeather = this.currentWeather.bind(this); + this.getClothes = this.getClothes.bind(this); + this.getLocation = this.getLocation.bind(this); + } componentDidMount(){ - //token for API request - const token = "&APPID=dc7912235b38897f91307afe6e1162c3" + //this.currentWeather() + this.getClothes() + this.getLocation() + } + + getLocation(){ + const tempArr = [] + tempArr.push('Jyväskylä') + tempArr.push('Helsinki') + + this.setState({location: tempArr}) + } + + currentWeather(){ + //token for API request + const token = "" const unit = "&units=metric" //API address const apiUrl ='http://api.openweathermap.org/data/2.5/weather?q=Tampere,fi' @@ -36,32 +57,75 @@ class MainPage extends Component { error }) } - ) + ) + } + + getClothes(){ + //get clothes for user from backend + //compare clothes to weather => set to state array + + //testdata + const tempArr = [] + tempArr.push(require('../testimages/housut.png')) + tempArr.push(require('../testimages/paita.png')) + tempArr.push(require('../testimages/pipo.png')) + + this.setState({clothes: tempArr}) + //console.log(this.state.clothes[2]) } + render() { - const {currentWeather, isLoaded} = this.state + const {currentWeather, isLoaded, clothes, location} = this.state if(isLoaded){ - return ( - <div className="weatherBox"> - {/* <ul> - <li>testdata</li> - <li>testdata</li> - <li>testdata</li> - </ul> - */} + return ( + <div className={"content"}> + <h1>Wear Right</h1> + <div className={"header"}> + <div className={"menu"}> + {/* menubutton here! from component */} + {/* Test menu button */} + <button><FaBars className={"icons"} /></button> + </div> + <div className={"location"}> + {/* favourite places here from component */} + {/* Test data */} + {location.map((loc) => <h3><FaStar className={"icons"} />{loc}</h3>)} + </div> + </div> + <hr></hr> + <div className={"weather"}> + <div className={"sliders"}> + <p>sliders</p> + </div> + <div className="weatherBox"> + {/* <ul> + <li>testdata</li> + <li>testdata</li> + <li>testdata</li> + </ul> */} + <ul> + <li>Lämpötila: { JSON.stringify(currentWeather[0]) }C</li> + <li>Tuuli: { JSON.stringify(currentWeather[1]) }m/s</li> + <li>Tuntuu kuin: ?</li> + </ul> + </div> + </div> + <div className={"clothes"}> + {clothes.map((item) => <img alt="img" src={item}></img>)} - <ul> - <li>Lämpötila: { JSON.stringify(currentWeather[0]) }C</li> - <li>Tuuli: { JSON.stringify(currentWeather[1]) }m/s</li> - <li>Tuntuu kuin: ?</li> - </ul> - </div> + <div className={"button"}> + <button id={"left"} ><FaArrowLeft className={"icons"} /></button> + <button id={"right"}><FaArrowRight className={"icons"}/></button> + </div> + </div> + </div> ); } else{ return <p>Lataa...</p> } + } } diff --git a/wearright/src/styles/MainPage.css b/wearright/src/styles/MainPage.css index 44909b4..ed79a0a 100644 --- a/wearright/src/styles/MainPage.css +++ b/wearright/src/styles/MainPage.css @@ -1,8 +1,55 @@ -ul{ - list-style: none; + + +/*top page*/ + +.header{ + display: flex; + justify-content: space-between; +} + +.menu{ + margin: 20px; +} +.location{ + margin-right: 30px; +} +.icons{ + font-size: 30px; +} + +.weather{ + margin: 20px; + display: flex; + justify-content: space-around +} + +.weatherBox, .sliders { box-sizing: content-box; width: 300px; height: 100px; + padding: 10px; + border: solid; +} + +ul{ + list-style: none; +} + +/*bottom of page*/ + +.clothes{ + margin: 30px; + display: inline-block; + box-sizing: content-box; padding: 30px; border: solid; -} \ No newline at end of file +} + +#left{ + float: left; + margin: 10px; +} +#right{ + float: right; + margin: 10px; +} \ No newline at end of file diff --git a/wearright/src/testimages/housut.png b/wearright/src/testimages/housut.png new file mode 100644 index 0000000000000000000000000000000000000000..d5fe4630d792cf58a411cf5d2fe9d12412efafc1 GIT binary patch literal 1978 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 literal 0 HcmV?d00001 diff --git a/wearright/src/testimages/paita.png b/wearright/src/testimages/paita.png new file mode 100644 index 0000000000000000000000000000000000000000..0622920ba41b717bdffa2780ab7128fb8b0d8c6a GIT binary patch literal 2231 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 YjnIVPzQ=kypAEp-(=HAbr~H%t4i~pMLI3~& literal 0 HcmV?d00001 diff --git a/wearright/src/testimages/pipo.png b/wearright/src/testimages/pipo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e28d2ad49aad42ecb83e3b2cf05f182cb07840f GIT binary patch literal 2374 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 ZRA`~~e`-LoQS!eJ=!l1}`_qF&;BSpGYzP1V literal 0 HcmV?d00001 -- GitLab