Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { Component } from 'react';
- import {Switch, Route, withRouter} from 'react-router-dom';
- import Home from './Home';
- import Login from './Login';
- import Logout from './Logout';
- import Accounts from "../../parentComponents/Accounts";
- import MediaMgt from "../../parentComponents/MediaMgt";
- import TickerMgt from "../../parentComponents/TickerMgt";
- import EventMgt from "../../parentComponents/EventMgt";
- import Storefront from "../../views/client/Storefront";
- import 'moment-timezone';
- import moment from 'moment';
- import Alert from 'react-s-alert';
- class Routes extends Component {
- constructor(props) {
- super(props);
- this.state = {
- timer: null,
- counter: 0,
- events: []
- };
- }
- getEvents = (data) => {
- console.log("data received");
- if (data.length > 0){
- let events = [];
- data.forEach((event) => {
- event.start = new Date(event.start);
- event.end = new Date(event.end);
- events.push(event);
- });
- this.setState({
- events: events
- });
- }
- this.generateTimer();
- };
- generateTimer = () => {
- console.log("PRESENTATION, generateTimer, starting timer...");
- let timer = setInterval(this.eventCheck, 10000);
- this.setState({
- timer: timer
- });
- };
- eventCheck = () => {
- console.log("starting check...");
- let index = this.state.counter + 1;
- this.state.events.forEach((event) => {
- console.log("entered loop...");
- if (
- event.reminder !== null &&
- event.start !== null &&
- event.start !== '' &&
- moment().isBefore(moment(moment(event.start).format('YYYY-MM-DD') + "T" + event.startTime))){
- console.log("first part of check passed, reminder is " + event.reminder);
- //NOW check to see if the diff of now and the start date is equal to the rate and interval of the reminder
- let reminderRate = event.reminder.slice(0,event.reminder.indexOf(" ")-1).toLowerCase();
- console.log("reminder rate is " + reminderRate);
- // noinspection JSCheckFunctionSignatures
- let timeDifference = moment(moment(event.start).format('YYYY-MM-DD') + "T" + event.startTime).diff
- (moment(), reminderRate);
- console.log("time difference is " + timeDifference);
- let reminderInt = parseInt(event.reminder.substr(event.reminder.indexOf(" "),
- event.reminder.length), 10);
- console.log("reminderInt is " + reminderInt);
- if (timeDifference === reminderInt){
- console.log("SUCCESS BITCHESSSSSSSSS for " + event.title);
- //put alert and email notification here
- // noinspection JSUnresolvedFunction
- Alert.warning("Reminder for " + event.name + " starts in " +
- moment.duration(timeDifference, reminderRate).humanize(true),{position:'bottom'});
- event.reminder = "NONE 0";
- }
- }
- });
- this.setState({
- counter: index
- });
- };
- render() {
- let loginComp = <Login
- isAuthenticated={this.props.isAuthenticated}
- handleLogin={this.props.handleLogin}
- username={this.props.username}
- password={this.props.password}
- />;
- let home = <Home
- successUrl={this.props.successUrl}
- selfProfile={this.props.selfProfile}
- getFbPosts={this.props.getFbPosts}
- fBPosts={this.props.fBPosts}
- makeNewPost={this.props.makeNewPost}
- fBNewPost={this.props.fBNewPost}
- dashEvents={this.getEvents}
- />;
- let userMgt = <UserMgt />;
- let accounts = <Accounts
- selfProfile={this.props.selfProfile}
- getFbProfile={this.props.getFbProfile}
- deleteAccount={this.props.deleteAccount}
- />;
- let mediaMgt = <MediaMgt
- selfProfile={this.props.selfProfile}
- />;
- let tickerMgt = <TickerMgt
- selfProfile={this.props.selfProfile}
- />;
- let eventMgt = <EventMgt
- selfProfile={this.props.selfProfile}
- dashEvents={this.getEvents}
- />;
- let storefront = <Storefront
- selfProfile={this.props.selfProfile}
- toggleStorefront={this.props.toggleStorefront}
- handleLogout={this.props.handleLogout}
- />;
- let protectRoute = (component, login) => {
- if (this.props.isAuthenticated) {
- return component;
- } else {
- return login;
- }
- };
- return (<Switch>
- <Route path='/login' render={() =>
- loginComp} />
- <Route path='/logout' render={props =>
- <Logout isAuthenticated={this.props.isAuthenticated}
- handleLogout={this.props.handleLogout} />} />
- <Route path='/home' render={props => protectRoute(home, loginComp)} />
- <Route path='/accounts' render={props => protectRoute(accounts, loginComp)} />
- <Route path='/eventMgt' render={props => protectRoute(eventMgt, loginComp)} />
- <Route path='/mediaMgt' render={props => protectRoute(mediaMgt, loginComp)} />
- <Route path='/tickerMgt' render={props => protectRoute(tickerMgt, loginComp)} />
- <Route path='/storefront' render={props => protectRoute(storefront, loginComp)} />
- </Switch>);
- }
- }
- export default withRouter(Routes);
Add Comment
Please, Sign In to add comment