diff --git a/package-lock.json b/package-lock.json
index fcec47e..b896302 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10111,6 +10111,11 @@
"minimist": "^1.2.5"
}
},
+ "moment": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+ },
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
diff --git a/package.json b/package.json
index a5f2a3b..7bd7cef 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"@testing-library/react": "^11.1.2",
"@testing-library/user-event": "^12.2.2",
"axios": "^0.21.0",
+ "moment": "^2.29.1",
"react": "^17.0.1",
"react-axios": "^2.0.3",
"react-dom": "^17.0.1",
diff --git a/src/APIexamples/departureuser1.json b/src/APIexamples/departureuser1.json
new file mode 100644
index 0000000..c1214b0
--- /dev/null
+++ b/src/APIexamples/departureuser1.json
@@ -0,0 +1,53 @@
+{
+ "DepartureBoard": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
+ "servertime": "10:09",
+ "serverdate": "2020-12-10",
+ "Departures": [
+ {
+ "name": "Buss MEXP",
+ "sname": "MEXP",
+ "journeyNumber": "24",
+ "type": "BUS",
+ "stopid": "9022014014754002",
+ "stop": "Bollestadsvägen, Kungälv",
+ "time": "10:09",
+ "date": "2020-12-10",
+ "journeyid": "9015014621000024",
+ "direction": "Marstrand",
+ "track": "B",
+ "rtTime": "10:11",
+ "rtDate": "2020-12-10",
+ "fgColor": "#006C93",
+ "bgColor": "#FFFFFF",
+ "stroke": "Solid",
+ "accessibility": "wheelChair",
+ "JourneyDetailRef": {
+ "ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=347217%2F124275%2F19874%2F105802%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14754002%26station_type%3Ddep%26format%3Djson%26"
+ }
+ },
+ {
+ "name": "Buss 920",
+ "sname": "920",
+ "journeyNumber": "2",
+ "type": "BUS",
+ "stopid": "9022014014754002",
+ "stop": "Bollestadsvägen, Kungälv",
+ "time": "12:26",
+ "date": "2020-12-10",
+ "journeyid": "9015014692000002",
+ "direction": "Bredsten",
+ "track": "B",
+ "rtTime": "12:26",
+ "rtDate": "2020-12-10",
+ "fgColor": "#006C93",
+ "bgColor": "#FFFFFF",
+ "stroke": "Solid",
+ "accessibility": "wheelChair",
+ "JourneyDetailRef": {
+ "ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=210630%2F70533%2F834318%2F346949%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14754002%26station_type%3Ddep%26format%3Djson%26"
+ }
+ }
+ ]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/departureuser2.json b/src/APIexamples/departureuser2.json
new file mode 100644
index 0000000..20cb88c
--- /dev/null
+++ b/src/APIexamples/departureuser2.json
@@ -0,0 +1,53 @@
+{
+ "DepartureBoard": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
+ "servertime": "10:10",
+ "serverdate": "2020-12-10",
+ "Departures": [
+ {
+ "name": "Buss MEXP",
+ "sname": "MEXP",
+ "journeyNumber": "24",
+ "type": "BUS",
+ "stopid": "9022014014020002",
+ "stop": "Ekelöv västra, Kungälv",
+ "time": "10:10",
+ "date": "2020-12-10",
+ "journeyid": "9015014621000024",
+ "direction": "Marstrand",
+ "track": "B",
+ "rtTime": "10:13",
+ "rtDate": "2020-12-10",
+ "fgColor": "#006C93",
+ "bgColor": "#FFFFFF",
+ "stroke": "Solid",
+ "accessibility": "wheelChair",
+ "JourneyDetailRef": {
+ "ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=740262%2F255290%2F59460%2F217024%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14020002%26station_type%3Ddep%26format%3Djson%26"
+ }
+ },
+ {
+ "name": "Buss 920",
+ "sname": "920",
+ "journeyNumber": "2",
+ "type": "BUS",
+ "stopid": "9022014014754002",
+ "stop": "Bollestadsvägen, Kungälv",
+ "time": "12:28",
+ "date": "2020-12-10",
+ "journeyid": "9015014692000002",
+ "direction": "Bredsten",
+ "track": "B",
+ "rtTime": "12:26",
+ "rtDate": "2020-12-10",
+ "fgColor": "#006C93",
+ "bgColor": "#FFFFFF",
+ "stroke": "Solid",
+ "accessibility": "wheelChair",
+ "JourneyDetailRef": {
+ "ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=210630%2F70533%2F834318%2F346949%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14754002%26station_type%3Ddep%26format%3Djson%26"
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/APIexamples/departureuser3.json b/src/APIexamples/departureuser3.json
new file mode 100644
index 0000000..96194d8
--- /dev/null
+++ b/src/APIexamples/departureuser3.json
@@ -0,0 +1,27 @@
+{
+ "DepartureBoard": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
+ "servertime": "10:10",
+ "serverdate": "2020-12-10",
+ "Departures": [{
+ "name": "Buss MEXP",
+ "sname": "MEXP",
+ "journeyNumber": "24",
+ "type": "BUS",
+ "stopid": "9022014014751002",
+ "stop": "Guddeby, Kungälv",
+ "time": "10:07",
+ "date": "2020-12-10",
+ "journeyid": "9015014621000024",
+ "direction": "Marstrand",
+ "track": "B",
+ "fgColor": "#006C93",
+ "bgColor": "#FFFFFF",
+ "stroke": "Solid",
+ "accessibility": "wheelChair",
+ "JourneyDetailRef": {
+ "ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=473190%2F166266%2F666560%2F175550%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14751002%26station_type%3Ddep%26format%3Djson%26"
+ }
+ }]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/departureuser4.json b/src/APIexamples/departureuser4.json
new file mode 100644
index 0000000..bb9fab3
--- /dev/null
+++ b/src/APIexamples/departureuser4.json
@@ -0,0 +1,30 @@
+{
+ "DepartureBoard": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
+ "servertime": "10:11",
+ "serverdate": "2020-12-10",
+ "Departures":
+ [{
+ "name": "Buss 928",
+ "sname": "928",
+ "journeyNumber": "10",
+ "type": "BUS",
+ "stopid": "9022014014225001",
+ "stop": "Skrämmenborg, Kungälv",
+ "time": "15:19",
+ "date": "2020-12-10",
+ "journeyid": "9015014692800010",
+ "direction": "Kärna",
+ "track": "A",
+ "rtTime": "15:19",
+ "rtDate": "2020-12-10",
+ "fgColor": "#006C93",
+ "bgColor": "#FFFFFF",
+ "stroke": "Solid",
+ "accessibility": "wheelChair",
+ "JourneyDetailRef": {
+ "ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=261732%2F87569%2F149176%2F12656%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14225001%26station_type%3Ddep%26format%3Djson%26"
+ }
+ }]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/disruption1.json b/src/APIexamples/disruption1.json
new file mode 100644
index 0000000..0a97099
--- /dev/null
+++ b/src/APIexamples/disruption1.json
@@ -0,0 +1,16 @@
+{
+ "situationNumber": "RT1",
+ "severity":"normal",
+ "title":"Nabbensbergsvägen närmast Edsvägen helt avstängd och trafiken hänvisas istället via Korsebergsvägen. Samtidigt tas den tillfälliga förbifarten bort på Edsvägen och trafiken kommer att ledas förbi den nya cirkulationsplatsen i de två västra körfälten tills arbetet på Nabbensbergsvägen är klart Hastighet: 50km/h",
+ "time":"00:01",
+ "affectedStopPoints":[
+ {
+ "gid": "9022014014020001",
+ "name": "Ekelöv västra, Kungälv"
+ },
+ {
+ "gid": "9022014014751001",
+ "name": "Guddeby, Kungälv"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/APIexamples/disruption2.json b/src/APIexamples/disruption2.json
new file mode 100644
index 0000000..5cdea81
--- /dev/null
+++ b/src/APIexamples/disruption2.json
@@ -0,0 +1,12 @@
+{
+ "situationNumber": "RT2",
+ "severity":"normal",
+ "title":"Försening",
+ "time":"00:02",
+ "affectedStopPoints":[
+ {
+ "gid": "9021014014225000",
+ "name": "Skrämmenborg, Kungälv"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/APIexamples/locationuser1.json b/src/APIexamples/locationuser1.json
new file mode 100644
index 0000000..8288ff8
--- /dev/null
+++ b/src/APIexamples/locationuser1.json
@@ -0,0 +1,36 @@
+{
+ "LocationList": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestLocation.xsd",
+ "servertime": "16:48",
+ "serverdate": "2020-12-09",
+ "StopLocation": [
+ {
+ "name": "Bollestadsvägen, Kungälv",
+ "id": "9022014014754001",
+ "lat": "57.888940",
+ "lon": "11.885663",
+ "track": "A"
+ },
+ {
+ "name": "Bollestadsvägen, Kungälv",
+ "id": "9021014014754000",
+ "lat": "57.889030",
+ "lon": "11.885708"
+ },
+ {
+ "name": "Bollestadsvägen, Kungälv",
+ "id": "9022014014754002",
+ "lat": "57.889111",
+ "lon": "11.885753",
+ "track": "B"
+ },
+ {
+ "name": "Bredsten, Kungälv",
+ "id": "9022014014753002",
+ "lat": "57.886450",
+ "lon": "11.889529",
+ "track": "B"
+ }
+ ]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/locationuser2.json b/src/APIexamples/locationuser2.json
new file mode 100644
index 0000000..decace7
--- /dev/null
+++ b/src/APIexamples/locationuser2.json
@@ -0,0 +1,36 @@
+{
+ "LocationList": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestLocation.xsd",
+ "servertime": "16:47",
+ "serverdate": "2020-12-09",
+ "StopLocation": [
+ {
+ "name": "Ekelöv västra, Kungälv",
+ "id": "9022014014020001",
+ "lat": "57.892527",
+ "lon": "11.865321",
+ "track": "A"
+ },
+ {
+ "name": "Ekelöv västra, Kungälv",
+ "id": "9021014014020000",
+ "lat": "57.892608",
+ "lon": "11.865312"
+ },
+ {
+ "name": "Ekelöv västra, Kungälv",
+ "id": "9022014014020002",
+ "lat": "57.892689",
+ "lon": "11.865285",
+ "track": "B"
+ },
+ {
+ "name": "Ekelöv östra, Kungälv",
+ "id": "9022014014021002",
+ "lat": "57.892994",
+ "lon": "11.873923",
+ "track": "B"
+ }
+ ]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/locationuser3.json b/src/APIexamples/locationuser3.json
new file mode 100644
index 0000000..450cfe7
--- /dev/null
+++ b/src/APIexamples/locationuser3.json
@@ -0,0 +1,36 @@
+{
+ "LocationList": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestLocation.xsd",
+ "servertime": "16:45",
+ "serverdate": "2020-12-09",
+ "StopLocation": [
+ {
+ "name": "Guddeby, Kungälv",
+ "id": "9022014014751001",
+ "lat": "57.874665",
+ "lon": "11.903884",
+ "track": "A"
+ },
+ {
+ "name": "Guddeby, Kungälv",
+ "id": "9021014014751000",
+ "lat": "57.874710",
+ "lon": "11.903929"
+ },
+ {
+ "name": "Guddeby, Kungälv",
+ "id": "9022014014751002",
+ "lat": "57.874746",
+ "lon": "11.903965",
+ "track": "B"
+ },
+ {
+ "name": "Stället, Kungälv",
+ "id": "9022014014744001",
+ "lat": "57.869784",
+ "lon": "11.904172",
+ "track": "A"
+ }
+ ]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/locationuser4.json b/src/APIexamples/locationuser4.json
new file mode 100644
index 0000000..d8f2fc4
--- /dev/null
+++ b/src/APIexamples/locationuser4.json
@@ -0,0 +1,35 @@
+{
+ "LocationList": {
+ "noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestLocation.xsd",
+ "servertime": "16:44",
+ "serverdate": "2020-12-09",
+ "StopLocation": [
+ {
+ "name": "Skrämmenborg, Kungälv",
+ "id": "9021014014225000",
+ "lat": "57.863528",
+ "lon": "11.867406"
+ },
+ {
+ "name": "Skrämmenborg, Kungälv",
+ "id": "9022014014225001",
+ "lat": "57.863528",
+ "lon": "11.867406",
+ "track": "A"
+ },
+ {
+ "name": "Kuröd, Kungälv",
+ "id": "9022014014762002",
+ "lat": "57.856966",
+ "lon": "11.863774",
+ "track": "B"
+ },
+ {
+ "name": "Kuröd, Kungälv",
+ "id": "9021014014762000",
+ "lat": "57.856831",
+ "lon": "11.864260"
+ }
+ ]
+ }
+ }
\ No newline at end of file
diff --git a/src/APIexamples/user1.json b/src/APIexamples/user1.json
new file mode 100644
index 0000000..6f3b2f2
--- /dev/null
+++ b/src/APIexamples/user1.json
@@ -0,0 +1,5 @@
+{
+ "name": "Användare 1",
+ "deviceId": "1",
+ "stoppointgid": "9022014014754001"
+}
\ No newline at end of file
diff --git a/src/APIexamples/user2.json b/src/APIexamples/user2.json
new file mode 100644
index 0000000..06eef29
--- /dev/null
+++ b/src/APIexamples/user2.json
@@ -0,0 +1,5 @@
+{
+ "name": "Användare 2",
+ "deviceId": "2",
+ "stoppointgid": "9022014014020001"
+}
\ No newline at end of file
diff --git a/src/APIexamples/user3.json b/src/APIexamples/user3.json
new file mode 100644
index 0000000..6ee5f34
--- /dev/null
+++ b/src/APIexamples/user3.json
@@ -0,0 +1,5 @@
+{
+ "name": "Användare 3",
+ "deviceId": "3",
+ "stoppointgid": "9022014014751001"
+}
\ No newline at end of file
diff --git a/src/APIexamples/user4.json b/src/APIexamples/user4.json
new file mode 100644
index 0000000..3a81c81
--- /dev/null
+++ b/src/APIexamples/user4.json
@@ -0,0 +1,5 @@
+{
+ "name": "Användare 4",
+ "deviceId": "4",
+ "stoppointgid": "9021014014225000"
+}
\ No newline at end of file
diff --git a/src/App.js b/src/App.js
index 9df211d..f338a98 100644
--- a/src/App.js
+++ b/src/App.js
@@ -5,8 +5,9 @@ import React, { Component } from "react";
import { BrowserRouter as Router, Route } from "react-router-dom";
import BottomMenu from "./components/BottomMenu.js";
-//import AccessToken from "./components/AccessToken.js";
-import NearbyStation from "./components/NearbyStation";
+import NearbyStation from "./components/NearbyStation.js";
+import Disruption from "./components/Disruption.js";
+import StationDisruption from "./components/StationDisruption.js";
import Tickets from "./components/pages/Tickets.js";
import TicketsBuy from "./components/pages/TicketsBuy.js";
diff --git a/src/GlobalData.js b/src/GlobalData.js
index 3f4e9b9..fa6caba 100644
--- a/src/GlobalData.js
+++ b/src/GlobalData.js
@@ -1,11 +1,19 @@
import User from './classes/User.js';
-import Coordinates from "./classes/Coordinates.js";
+import Disruption from './classes/Disruption.js'
+import Coordinates from './classes/Coordinates.js';
+import Stop from './classes/Stop.js'
let globalData = {
+ users : [],
user: new User(
- "test",
+ "Exempelanvändare",
"123",
- new Coordinates()
+ new Coordinates(),
+ "123"
+ ),
+ disruption: new Disruption(
+ ),
+ stop: new Stop(
)
};
diff --git a/src/classes/AccessToken.js b/src/classes/AccessToken.js
index 0537ec3..300800a 100644
--- a/src/classes/AccessToken.js
+++ b/src/classes/AccessToken.js
@@ -12,7 +12,6 @@ class AccessToken {
axios.post('https://api.vasttrafik.se/token','grant_type=client_credentials&scope=device_'+this.device, {headers} )
.then(response => {
- console.log(response);
this.token = response.data.access_token
});
}
diff --git a/src/classes/Coordinates.js b/src/classes/Coordinates.js
index 53d48bf..b326afe 100644
--- a/src/classes/Coordinates.js
+++ b/src/classes/Coordinates.js
@@ -12,4 +12,4 @@ class Coordinates {
}
}
-export default Coordinates;
\ No newline at end of file
+export default Coordinates;
diff --git a/src/classes/Departure.js b/src/classes/Departure.js
index ba0eafc..960f0e6 100644
--- a/src/classes/Departure.js
+++ b/src/classes/Departure.js
@@ -3,15 +3,20 @@
lineName : String (Linjenamnet)
finalStop : Stop (Ändhållplats)
- time : String (Avgångstid)
+ originalTime : String (Ursprunglig Avgångstid)
+ newTime : String (Ny Avgångstid)
trafficInfo : String (Trafikinformation)
*/
class Departure {
- constructor(lineName, finalStop, time, trafficInfo) {
- this.lineName = lineName;
- this.finalStop = finalStop;
- this.time = time;
+ constructor(lineName, finalStop, originalTime) {
+ this.sname = lineName;
+ this.direction = finalStop;
+ this.time = originalTime;
+ }
+
+ timeUpdate(time, trafficInfo) {
+ this.newTime = time;
this.trafficInfo = trafficInfo;
}
}
diff --git a/src/classes/Disruption.js b/src/classes/Disruption.js
new file mode 100644
index 0000000..583db9a
--- /dev/null
+++ b/src/classes/Disruption.js
@@ -0,0 +1,11 @@
+
+class Disruption {
+ constructor(situationNumber, severity, title, affectedStopPoints) {
+ this.situationNumber = situationNumber;
+ this.severity = severity;
+ this.title = title;
+ this.affectedStopPoints = affectedStopPoints;
+ }
+}
+
+export default Disruption;
\ No newline at end of file
diff --git a/src/classes/Stop.js b/src/classes/Stop.js
index 51a6169..f64b86c 100644
--- a/src/classes/Stop.js
+++ b/src/classes/Stop.js
@@ -7,11 +7,25 @@
*/
class Stop {
- constructor(name, locations, departures) {
+ constructor(name, id, lat, lon, locations, departures) {
this.name = name;
+ this.id = id;
+ this.lat = lat;
+ this.lon = lon;
this.locations = locations;
this.departures = departures;
}
}
+/*
+Från västtrafiks api ett element i listan av hållplatser ser ut som följande
+ "id": "string",
+ "lon": "string",
+ "idx": "string",
+ "weight": "string",
+ "name": "string",
+ "track": "string",
+ "lat": "string"
+*/
+
export default Stop;
\ No newline at end of file
diff --git a/src/classes/User.js b/src/classes/User.js
index 0aef9aa..22db7ec 100644
--- a/src/classes/User.js
+++ b/src/classes/User.js
@@ -4,13 +4,16 @@
name : String (Användarnamn)
deviceId : Int (Enhetens ID)
location : Coordinates (Användarens koordinater)
+ track : String (Nuvarande hållplatsläge)
*/
class User {
- constructor(name, deviceId, location) {
+ constructor(name, deviceId, location, stoppointgid, track) {
this.name = name;
this.deviceId = deviceId;
this.location = location;
+ this.stoppointgid = stoppointgid;
+ this.track = track;
}
}
diff --git a/src/components/Button.js b/src/components/Button.js
index 873dc00..da798fc 100644
--- a/src/components/Button.js
+++ b/src/components/Button.js
@@ -13,7 +13,7 @@ class Button extends Component {
func();
});
} else {
- console.log("Error when parsing Button onClick functions.");
+ console.log("Error when parsing Button onClick functions. Make sure the functions are passed as an array.");
}
}
}
diff --git a/src/components/Disruption.js b/src/components/Disruption.js
new file mode 100644
index 0000000..7fd34b7
--- /dev/null
+++ b/src/components/Disruption.js
@@ -0,0 +1,57 @@
+import React from 'react';
+import axios from 'axios';
+import AccessToken from '../classes/AccessToken'
+
+class Diruption extends React.Component {
+ state = {
+ gid: '9022014005700002',
+ disruptions: [],
+ token: undefined,
+ tokenClass: new AccessToken()
+ }
+
+ handleChangeGid = event => {
+ this.setState({ lat: event.target.value});
+ }
+
+ handleSubmit = event => {
+ event.preventDefault();
+
+ const headers = {
+ 'Authorization': 'Bearer ' + this.state.tokenClass.token
+ };
+
+ axios.get('https://api.vasttrafik.se/ts/v1/traffic-situations/stoppoint/'+this.state.gid, { headers })
+ //axios.get('https://api.vasttrafik.se/ts/v1/traffic-situations/stoppoint/9022014005700002', { headers })
+ .then(response => {
+ this.setState({
+ disruptions: response.data
+ })
+ })
+ }
+
+ render() {
+ return (
+
+
+
+ {this.state.gid}
+
+ {this.state.disruptions.map((item) =>
+
+
+ {item.description}
+
+
+ )}
+
+ )
+ }
+}
+export default Diruption
diff --git a/src/components/DisruptionButton.js b/src/components/DisruptionButton.js
index c88e5ca..08f0dc3 100644
--- a/src/components/DisruptionButton.js
+++ b/src/components/DisruptionButton.js
@@ -1,23 +1,118 @@
-import addNotification from "react-push-notification";
+import globData from '../GlobalData.js';
+
+import user1 from '../APIexamples/user1.json'
+import user2 from '../APIexamples/user2.json'
+import user3 from '../APIexamples/user3.json'
+import user4 from '../APIexamples/user4.json'
+
+import locationuser1 from '../APIexamples/locationuser1.json'
+import locationuser2 from '../APIexamples/locationuser2.json'
+import locationuser3 from '../APIexamples/locationuser3.json'
+import locationuser4 from '../APIexamples/locationuser4.json'
+
+import departureuser1 from '../APIexamples/departureuser1.json'
+import departureuser2 from '../APIexamples/departureuser2.json'
+import departureuser3 from '../APIexamples/departureuser3.json'
+import departureuser4 from '../APIexamples/departureuser4.json'
+
+import ex1 from '../APIexamples/disruption1.json'
+import ex2 from '../APIexamples/disruption2.json'
import Button from './Button.js';
import disruptIcon from '../img/flash.svg';
+import globalData from '../GlobalData.js'
+import moment from "moment";
class DisruptionButton extends Button {
+ state = {
+ jsonLocation: this.props.path,
+ disruption: "",
+ u1 : user1,
+ u2 : user2,
+ u3 : user3,
+ u4 : user4,
+ }
+
+ updatePage = () => {
+ globalData.currentPage.forceUpdate();
+ }
+
+ showMomentTime = (time) => {
+ //return(time.hours().toString()+ ":"+time.minutes().toString())
+ return(time.format("HH:mm"))
+ }
+
+ genUsers = () => {
+ if(globData.users.length < 2){
+ this.state.first = true;
+ this.state.u1.stop = locationuser1.LocationList.StopLocation[0];
+ this.state.u1.stop.departures = departureuser1.DepartureBoard.Departures;
+ this.state.u2.stop = locationuser2.LocationList.StopLocation[0];
+ this.state.u2.stop.departures = departureuser2.DepartureBoard.Departures;
+ this.state.u3.stop = locationuser3.LocationList.StopLocation[0];
+ this.state.u3.stop.departures = departureuser3.DepartureBoard.Departures;
+ this.state.u4.stop = locationuser4.LocationList.StopLocation[0];
+ this.state.u4.stop.departures = departureuser4.DepartureBoard.Departures;
+ globData.users = [
+ this.state.u1,
+ this.state.u2,
+ this.state.u3,
+ this.state.u4
+ ]
+ }
+ }
+
genDisrupt = () => {
- addNotification({
- title: "Warning",
- subtitle: "This is a subtitle",
- message: "This is a very long message",
- theme: "blue",
- native: true, // when using native, your OS will handle theming.
- });
+ this.genUsers()
+
+ this.state.disruption = undefined
+ if(this.state.jsonLocation === "ex1"){
+ for (let stopPoint of ex1.affectedStopPoints) {
+ for (let user of globData.users){
+ if(stopPoint.gid === user.stoppointgid){
+ this.state.disruption = ex1;
+ var old1t = moment(user.stop.departures[0].time,"HH:mm");
+ old1t.add(ex1.time, "HH:mm");
+ user.stop.departures[0].newTime = this.showMomentTime(old1t);
+ user.stop.departures[0].trafficInfo = ex1.title;
+ }
+ }
+ if(stopPoint.gid === globData.user.stoppointgid){
+ this.state.disruption = ex1;
+ var old2t = moment(globData.stop.departures[0].time,"HH:mm");
+ old2t.add(ex1.time, "HH:mm");
+ globData.stop.departures[0].newTime = this.showMomentTime(old2t);
+ globData.stop.departures[0].trafficInfo = ex1.title;
+ }
+ }
+ } else if (this.state.jsonLocation === "ex2"){
+ for (let stopPoint of ex2.affectedStopPoints) {
+ for (let user of globData.users){
+ if(stopPoint.gid === user.stoppointgid){
+ this.state.disruption = ex2;
+ var old3t = moment(user.stop.departures[0].time,"HH:mm");
+ old3t.add(ex2.time, "HH:mm");
+ user.stop.departures[0].newTime = this.showMomentTime(old3t);
+ user.stop.departures[0].trafficInfo = ex2.title;
+ }
+ }
+ if(stopPoint.gid === globData.user.stoppointgid){
+ this.state.disruption = ex2;
+ var old4t = moment(globData.stop.departures[0].time,"HH:mm");
+ old4t.add(ex2.time, "HH:mm");
+ globData.stop.departures[0].newTime = this.showMomentTime(old4t);
+ globData.stop.departures[0].trafficInfo = ex2.title;
+ }
+ }
+ }
+
+ globData.disruption = this.state.disruption
}
render() {
return (
-