Changeset f5b256e for my-react-app/src/components/AppContent.js
- Timestamp:
- 04/28/25 14:20:18 (3 weeks ago)
- Branches:
- main
- Children:
- deea3c4
- Parents:
- 8ca35dc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
my-react-app/src/components/AppContent.js
r8ca35dc rf5b256e 15 15 isAuthenticated: false, 16 16 user: null, 17 loading: false // Add loading state17 loading: false 18 18 }; 19 19 } … … 29 29 30 30 fetchUserDetails = (token) => { 31 console.log("Fetch ");31 console.log("Fetching User Details..."); 32 32 axios.get("/api/user") 33 33 .then((response) => { 34 this.setState({ user: response.data, componentToShow: "restaurants", isAuthenticated: true }); 34 this.setState({ 35 user: response.data, 36 componentToShow: "restaurants", 37 isAuthenticated: true 38 }); 35 39 }) 36 40 .catch((error) => { 37 41 console.error("Failed to fetch user details:", error); 38 this.logout();39 42 }); 40 43 }; … … 52 55 onLogin = (e, email, password) => { 53 56 e.preventDefault(); 54 // After successful login, save the token 57 55 58 axios.post("/api/login", { email, password }) 56 59 .then((response) => { 57 60 const token = response.data.token; 58 localStorage.setItem('token', token); // Save the token59 console.log( token);60 this.setAuthToken(token); // Set the token for future requests61 this. setState({ componentToShow: "restaurants", isAuthenticated: true });61 localStorage.setItem('token', token); 62 console.log("Login Token:", token); 63 this.setAuthToken(token); 64 this.fetchUserDetails(token); 62 65 }) 63 66 .catch((error) => { … … 65 68 this.setState({ componentToShow: "welcome" }); 66 69 }); 67 68 70 }; 69 71 … … 93 95 94 96 render() { 97 if (this.state.isAuthenticated) { 98 return ( 99 <div> 100 <Buttons login={this.login} logout={this.logout} /> 101 <AuthContent /> 102 </div> 103 ); 104 } 105 95 106 return ( 96 107 <div> 97 108 <Buttons login={this.login} logout={this.logout} /> 98 109 {this.state.componentToShow === "welcome" && <WelcomeContent />} 99 {this.state.componentToShow === "restaurants" && <AuthContent />}100 110 {this.state.componentToShow === "login" && <LoginForm onLogin={this.onLogin} onRegister={this.onRegister} />} 101 {this.state.loading && <div>Loading...</div>} {/* Show loading state */}102 111 </div> 103 112 ); 113 // return ( 114 // <div> 115 // <Buttons login={this.login} logout={this.logout} /> 116 // {this.state.componentToShow === "welcome" && <WelcomeContent />} 117 // {this.state.componentToShow === "restaurants" && <AuthContent />} 118 // {this.state.componentToShow === "login" && <LoginForm onLogin={this.onLogin} onRegister={this.onRegister} />} 119 // {this.state.loading && <div>Loading...</div>} {/* Show loading state */} 120 // </div> 121 // ); 104 122 } 105 123 }
Note:
See TracChangeset
for help on using the changeset viewer.