66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import addNotification from "react-push-notification";
 | 
						|
 | 
						|
import globData from '../GlobalData.js';
 | 
						|
 | 
						|
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'
 | 
						|
 | 
						|
class DisruptionButton extends Button {
 | 
						|
	state = {
 | 
						|
		jsonLocation: this.props.path,
 | 
						|
		disruption: ""
 | 
						|
	}
 | 
						|
    
 | 
						|
    updatePage = () => {
 | 
						|
        globalData.currentPage.forceUpdate();
 | 
						|
    }
 | 
						|
 | 
						|
	genDisrupt = () => {
 | 
						|
		this.state.disruption = undefined
 | 
						|
		if(this.state.jsonLocation === "ex1"){
 | 
						|
			for (let stopPoint of ex1.affectedStopPoints) {
 | 
						|
				if(stopPoint.gid === globData.user.stoppointgid){
 | 
						|
					this.state.disruption = ex1;
 | 
						|
					globData.stop.departures[0].newTime = ex1.time;
 | 
						|
					globData.stop.departures[0].trafficInfo = ex1.title;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		} else if (this.state.jsonLocation === "ex2"){
 | 
						|
			for (let stopPoint of ex2.affectedStopPoints) {
 | 
						|
				if(stopPoint.gid === globData.user.stoppointgid){
 | 
						|
					this.state.disruption = ex2;
 | 
						|
					globData.stop.departures[0].newTime = ex2.time;
 | 
						|
					globData.stop.departures[0].trafficInfo = ex2.title;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		globData.disruption = this.state.disruption
 | 
						|
 | 
						|
		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.
 | 
						|
		});
 | 
						|
	}
 | 
						|
 | 
						|
	render() {
 | 
						|
		return (
 | 
						|
			<Button onClick={this.props.onClick.concat([this.genDisrupt,this.updatePage])} className="disruptBtn">
 | 
						|
				<img src={disruptIcon} alt="" />
 | 
						|
				<span>Generera Störning</span>
 | 
						|
			</Button>
 | 
						|
		);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
export default DisruptionButton;
 |