From 49d57c59ddfa1b16ab21d2e2654635f7e03bce6c Mon Sep 17 00:00:00 2001 From: "a.soldatof" Date: Sat, 18 May 2019 23:41:01 +0300 Subject: [PATCH] load tips --- package-lock.json | 126 +++++++++++++++++++++++++----------------- package.json | 1 + src/App.css | 13 +++-- src/Game.js | 29 ++++++++-- src/GameController.js | 2 +- src/api.js | 2 +- 6 files changed, 111 insertions(+), 62 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4000d3f..961f17d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,14 @@ "source-map": "^0.5.0" }, "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", @@ -880,6 +888,16 @@ "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.11" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } } }, "@babel/types": { @@ -1908,13 +1926,6 @@ "requires": { "follow-redirects": "^1.3.0", "is-buffer": "^1.1.5" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - } } }, "axobject-query": { @@ -3937,9 +3948,9 @@ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } @@ -4443,6 +4454,14 @@ "text-table": "^0.2.0" }, "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, "import-fresh": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", @@ -5281,16 +5300,6 @@ "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "requires": { "debug": "^3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } } }, "for-in": { @@ -5649,11 +5658,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -6107,9 +6111,9 @@ } }, "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { "version": "1.1.4", @@ -6382,6 +6386,14 @@ "source-map": "^0.6.1" }, "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7594,13 +7606,6 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - } } }, "kleur": { @@ -10859,11 +10864,6 @@ "mixin-object": "^2.0.1" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", @@ -11083,16 +11083,6 @@ "inherits": "^2.0.3", "json3": "^3.3.2", "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } } }, "source-list-map": { @@ -11181,6 +11171,16 @@ "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } } }, "spdy-transport": { @@ -11196,6 +11196,14 @@ "wbuf": "^1.7.3" }, "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, "readable-stream": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", @@ -11786,6 +11794,11 @@ "x-is-string": "^0.1.0" }, "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + }, "vfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", @@ -12069,6 +12082,11 @@ "vfile-message": "^2.0.0" }, "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + }, "unist-util-stringify-position": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.0.tgz", @@ -12254,6 +12272,14 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, "decamelize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", diff --git a/package.json b/package.json index 02a99c1..c701879 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "dependencies": { "axios": "^0.18.0", + "fast-deep-equal": "^2.0.1", "leaflet": "^1.5.1", "react": "^16.8.6", "react-dom": "^16.8.6", diff --git a/src/App.css b/src/App.css index 5687114..8d84772 100644 --- a/src/App.css +++ b/src/App.css @@ -64,22 +64,23 @@ align-self: center; } -.Get-tips { +.Get-button { position: relative; background: none; border: solid 2px; width: 50%; align-self: center; - margin-bottom: 5px; - font-size: 30px; + font-size: 25px; cursor: pointer; + margin: 5px 20px; + padding: 5px 0; } .Game-tips-list { height: 100%; } -.Get-tips:active { +.Get-button:active { bottom: -1px; right: -1px; } @@ -88,6 +89,10 @@ text-align: initial; } +.Game-controls { + display: flex; +} + #map { min-height: 80vh; } diff --git a/src/Game.js b/src/Game.js index 6c88e81..2e4a073 100644 --- a/src/Game.js +++ b/src/Game.js @@ -10,15 +10,18 @@ export class Game extends Component { super(props); this.gameController = new GameController(); this.state = { - tips: this.gameController.tips() + tips: this.gameController.tips(), + loading: true }; } componentDidMount() { - createMap('map'); this.gameController.createGame().then(() => this.gameController.loadTips()).then(() => { this.setState({ - tips: this.gameController.tips() + tips: this.gameController.tips(), + loading: false + }, () => { + createMap('map'); }) }); } @@ -32,6 +35,14 @@ export class Game extends Component { }; render() { + if(this.state.loading) { + return ( + +

Парсим википедию

+
+ ); + } + return (
@@ -44,9 +55,15 @@ export class Game extends Component { {this.state.tips.map(tip =>
  • {tip}
  • )} )} - + +
    + + +
    diff --git a/src/GameController.js b/src/GameController.js index 67dc357..009f8fe 100644 --- a/src/GameController.js +++ b/src/GameController.js @@ -22,7 +22,7 @@ export class GameController { getMoreTips() { return api.post(`/games/${this.gameId}/ask-tip`).then(json => { - this._tips = this._tips.concat(json.data.tips); + this._tips = json.data.tips; }); } } \ No newline at end of file diff --git a/src/api.js b/src/api.js index d0b9ebb..80cd814 100644 --- a/src/api.js +++ b/src/api.js @@ -2,5 +2,5 @@ import * as axios from 'axios'; export const api = axios.create({ baseURL: 'http://localhost:8080/api/', - timeout: 1000 + timeout: 30000 }); \ No newline at end of file -- 2.50.1