Guest User

Untitled

a guest
Nov 30th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.68 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import {Switch, Route, withRouter} from 'react-router-dom';
  3. import Home from './Home';
  4. import Login from './Login';
  5. import Logout from './Logout';
  6. import Accounts from "../../parentComponents/Accounts";
  7. import MediaMgt from "../../parentComponents/MediaMgt";
  8. import TickerMgt from "../../parentComponents/TickerMgt";
  9. import EventMgt from "../../parentComponents/EventMgt";
  10. import Storefront from "../../views/client/Storefront";
  11. import 'moment-timezone';
  12. import moment from 'moment';
  13. import Alert from 'react-s-alert';
  14.  
  15. class Routes extends Component {
  16. constructor(props) {
  17. super(props);
  18. this.state = {
  19. timer: null,
  20. counter: 0,
  21. events: []
  22. };
  23. }
  24.  
  25. getEvents = (data) => {
  26. console.log("data received");
  27. if (data.length > 0){
  28. let events = [];
  29. data.forEach((event) => {
  30. event.start = new Date(event.start);
  31. event.end = new Date(event.end);
  32. events.push(event);
  33. });
  34. this.setState({
  35. events: events
  36. });
  37. }
  38. this.generateTimer();
  39. };
  40.  
  41. generateTimer = () => {
  42. console.log("PRESENTATION, generateTimer, starting timer...");
  43. let timer = setInterval(this.eventCheck, 10000);
  44. this.setState({
  45. timer: timer
  46. });
  47. };
  48.  
  49. eventCheck = () => {
  50. console.log("starting check...");
  51. let index = this.state.counter + 1;
  52. this.state.events.forEach((event) => {
  53. console.log("entered loop...");
  54. if (
  55. event.reminder !== null &&
  56. event.start !== null &&
  57. event.start !== '' &&
  58. moment().isBefore(moment(moment(event.start).format('YYYY-MM-DD') + "T" + event.startTime))){
  59. console.log("first part of check passed, reminder is " + event.reminder);
  60. //NOW check to see if the diff of now and the start date is equal to the rate and interval of the reminder
  61. let reminderRate = event.reminder.slice(0,event.reminder.indexOf(" ")-1).toLowerCase();
  62. console.log("reminder rate is " + reminderRate);
  63. // noinspection JSCheckFunctionSignatures
  64. let timeDifference = moment(moment(event.start).format('YYYY-MM-DD') + "T" + event.startTime).diff
  65. (moment(), reminderRate);
  66. console.log("time difference is " + timeDifference);
  67. let reminderInt = parseInt(event.reminder.substr(event.reminder.indexOf(" "),
  68. event.reminder.length), 10);
  69. console.log("reminderInt is " + reminderInt);
  70. if (timeDifference === reminderInt){
  71. console.log("SUCCESS BITCHESSSSSSSSS for " + event.title);
  72. //put alert and email notification here
  73. // noinspection JSUnresolvedFunction
  74. Alert.warning("Reminder for " + event.name + " starts in " +
  75. moment.duration(timeDifference, reminderRate).humanize(true),{position:'bottom'});
  76. event.reminder = "NONE 0";
  77. }
  78. }
  79. });
  80. this.setState({
  81. counter: index
  82. });
  83. };
  84.  
  85. render() {
  86. let loginComp = <Login
  87. isAuthenticated={this.props.isAuthenticated}
  88. handleLogin={this.props.handleLogin}
  89. username={this.props.username}
  90. password={this.props.password}
  91. />;
  92. let home = <Home
  93. successUrl={this.props.successUrl}
  94. selfProfile={this.props.selfProfile}
  95. getFbPosts={this.props.getFbPosts}
  96. fBPosts={this.props.fBPosts}
  97. makeNewPost={this.props.makeNewPost}
  98. fBNewPost={this.props.fBNewPost}
  99. dashEvents={this.getEvents}
  100. />;
  101. let userMgt = <UserMgt />;
  102. let accounts = <Accounts
  103. selfProfile={this.props.selfProfile}
  104. getFbProfile={this.props.getFbProfile}
  105. deleteAccount={this.props.deleteAccount}
  106. />;
  107. let mediaMgt = <MediaMgt
  108. selfProfile={this.props.selfProfile}
  109. />;
  110. let tickerMgt = <TickerMgt
  111. selfProfile={this.props.selfProfile}
  112. />;
  113. let eventMgt = <EventMgt
  114. selfProfile={this.props.selfProfile}
  115. dashEvents={this.getEvents}
  116. />;
  117. let storefront = <Storefront
  118. selfProfile={this.props.selfProfile}
  119. toggleStorefront={this.props.toggleStorefront}
  120. handleLogout={this.props.handleLogout}
  121. />;
  122. let protectRoute = (component, login) => {
  123. if (this.props.isAuthenticated) {
  124. return component;
  125. } else {
  126. return login;
  127. }
  128. };
  129. return (<Switch>
  130. <Route path='/login' render={() =>
  131. loginComp} />
  132. <Route path='/logout' render={props =>
  133. <Logout isAuthenticated={this.props.isAuthenticated}
  134. handleLogout={this.props.handleLogout} />} />
  135. <Route path='/home' render={props => protectRoute(home, loginComp)} />
  136. <Route path='/accounts' render={props => protectRoute(accounts, loginComp)} />
  137. <Route path='/eventMgt' render={props => protectRoute(eventMgt, loginComp)} />
  138. <Route path='/mediaMgt' render={props => protectRoute(mediaMgt, loginComp)} />
  139. <Route path='/tickerMgt' render={props => protectRoute(tickerMgt, loginComp)} />
  140. <Route path='/storefront' render={props => protectRoute(storefront, loginComp)} />
  141. </Switch>);
  142. }
  143. }
  144. export default withRouter(Routes);
Add Comment
Please, Sign In to add comment