Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.65 KB | None | 0 0
  1. import React, {Component} from 'react';
  2. import {Redirect, NavLink} from 'react-router-dom';
  3. import './Profile.css';
  4. import stravaSyncButton from '../assets/photos/sync-strava.png';
  5. import stravaConnectButton from '../assets/photos/connect-strava.png';
  6. import sportsTrackerSyncButton from '../assets/photos/sport-sync.png';
  7. import sportsTrackerConnectButton from '../assets/photos/sport-connect.png';
  8. import resetButton from '../assets/photos/reset-button.png';
  9.  
  10.  
  11. const JWToken = 'x-fortech-auth';
  12. const fortechUser = 'Fortech-user';
  13.  
  14. class Profile extends Component {
  15.  
  16. constructor(props) {
  17. super(props);
  18. this.state = {
  19. //userProfile: Object,
  20. }
  21. }
  22.  
  23. componentDidMount() {
  24. if (localStorage.getItem(JWToken) == null) {
  25. return (<Redirect to={'/'}/>)
  26. }
  27. let profileURL = 'http://localhost:8080/user/profile';
  28.  
  29. fetch(profileURL, {
  30. method: 'GET',
  31. headers: new Headers({
  32. 'x-fortech-auth': localStorage.getItem(JWToken)
  33. }),
  34. }).then((response) => {
  35. if (response.ok) {
  36. /* response.json()
  37. .then((data) => this.setState({userProfile: data}))*/
  38. } else {
  39. throw new Error(response.status.toString());
  40. }
  41. }).catch((error) => {
  42. if (error.message === '401') {
  43. localStorage.removeItem(JWToken);
  44. localStorage.removeItem(fortechUser);
  45. this.setState({userProfile: null});
  46. }
  47. })
  48. }
  49.  
  50. userCheck(){
  51. let user = localStorage.getItem(fortechUser);
  52. user = JSON.parse(user);
  53. if(user.stravaAthleteId != null || user.sportsTrackerUsername != null){
  54. document.getElementById("connect").hidden=true;
  55. document.getElementById("sync").hidden=false;
  56. if(user.stravaAthleteId != null){
  57. document.getElementById("stravaSync").classList.add('shadow');
  58. document.getElementById("stravaSync").classList.remove('disabled-button');
  59. document.getElementById("trackerSync").classList.add('disabled-button');
  60. document.getElementById("trackerSync").classList.remove('shadow');
  61. } else {
  62. document.getElementById("trackerSync").classList.add('shadow');
  63. document.getElementById("trackerSync").classList.remove('disabled-button');
  64. document.getElementById("stravaSync").classList.add('disabled-button');
  65. document.getElementById("stravaSync").classList.remove('shadow');
  66. }
  67. } else {
  68. document.getElementById("sync").hidden=true;
  69. document.getElementById("connect").hidden=false;
  70. }
  71. }
  72.  
  73. conectWithStrava() {
  74. console.log("try to connect with Strava");
  75. }
  76.  
  77. connectWithSportstracker() {
  78. console.log("try to connect with Tracker");
  79. // document.getElementById("connect").style.display="none";
  80. }
  81.  
  82. render() {
  83.  
  84. if (localStorage.getItem(JWToken) == null) {
  85. return (<Redirect to={'/'}/>);
  86. }
  87.  
  88. console.log(this.state.userProfile);
  89.  
  90. let user = localStorage.getItem(fortechUser)
  91. user = JSON.parse(user);
  92.  
  93. let photo = 'data:image/png;base64,' + user.avatar;
  94.  
  95. return (
  96. <div className='container'>
  97. <div className='row'>
  98. <div className='col-md-7 mx-auto'>
  99. <div className="profileCard hovercard">
  100. <div className="cardheader">
  101.  
  102. </div>
  103. <div className="avatar">
  104. <img alt="" src={photo}/>
  105. </div>
  106. <div className="info">
  107. <div className="title">
  108. <a target="_blank" className="user-name">{user.firstName} {user.lastName}</a>
  109. </div>
  110. <div className="desc user-info">Gender: <b>{user.gender}</b></div>
  111. <div className="desc user-info">Unit: <b>{user.unit}</b></div>
  112. <div className="desc user-info">Username: <b>{user.username}</b></div>
  113. <div className="desc user-info">Last sync: <b>{user.trackLastSync}</b></div>
  114. <hr/>
  115. <div className='row' id="connect" >
  116. <div className="myButton col-6" ><img className="myButtonImage shadow" id="stravaConnect"
  117. src={stravaConnectButton}
  118. onClick={this.conectWithStrava}/></div>
  119. <div className="myButton col-6" ><img className="myButtonImage shadow" id="trackerConnect"
  120. src={sportsTrackerConnectButton}
  121. onClick={this.userCheck}/></div>
  122.  
  123. </div>
  124. <div className='row' id="sync" >
  125. <div className="myButton col-6" ><img className="myButtonImage disabled-button " id="stravaSync"
  126. src={stravaSyncButton}
  127. onClick={this.conectWithStrava}/></div>
  128. <div className="myButton col-6" ><img className="myButtonImage disabled-button" id="trackerSync"
  129. src={sportsTrackerSyncButton}
  130. onClick={this.connectWithSportstracker}/></div>
  131.  
  132. </div>
  133. <div className="row btn col-md-5 mt-3 justify-content-center">
  134. <img className="myButtonImage shadow"
  135. src={resetButton}
  136. onClick={this.RESET}/>
  137. </div>
  138. <hr/>
  139. </div>
  140. </div>
  141.  
  142. </div>
  143. </div>
  144. </div>
  145. )
  146. }
  147. }
  148.  
  149. export default Profile;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement