Skip to content

Commit 77ee49a

Browse files
authored
Merge pull request #49 from CS3219-AY2324S1/adjust-login-visible-ui
Adjust UI visibility based on log in
2 parents e56c0b9 + 2a4f413 commit 77ee49a

File tree

7 files changed

+49
-14
lines changed

7 files changed

+49
-14
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@
3737
npm-debug.log*
3838
yarn-debug.log*
3939
yarn-error.log*
40+
41+
# IDE files
42+
/*/.idea/

frontend/src/api/axios/config.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import axios from 'axios'
22

3-
export const httpClient = axios.create({
4-
baseURL: process.env.REACT_APP_BASE_URL,
5-
});
6-
73
export const questionhttpClient = axios.create({
84
baseURL: process.env.REACT_APP_QUESTION_BASE_URL,
95
})
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { ReactNode } from "react";
2+
import { Navigate } from "react-router-dom";
3+
import { useAuth } from "./auth.context";
4+
5+
interface RedirectIfLoggedInProps {
6+
children: ReactNode;
7+
}
8+
9+
export default function RedirectIfLoggedIn({ children }: RedirectIfLoggedInProps) {
10+
const { user } = useAuth();
11+
if (user) {
12+
return <Navigate to="/home" />;
13+
}
14+
return <>{children}</>;
15+
}

frontend/src/components/Navbar.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import AdbIcon from "@mui/icons-material/Adb";
1717
import { useAuth } from "../auth/auth.context";
1818
import { useNavigate } from "react-router-dom";
1919

20-
const pages = ["Products", "Pricing", "Blog"];
20+
const pages = ["Questions"];
2121
const authPages = [
2222
{
2323
name: "Login",
@@ -67,7 +67,7 @@ export default function Navbar() {
6767
variant="h6"
6868
noWrap
6969
component="a"
70-
href="/"
70+
href="/home"
7171
sx={{
7272
mr: 2,
7373
display: { xs: "none", md: "flex" },
@@ -78,7 +78,7 @@ export default function Navbar() {
7878
textDecoration: "none",
7979
}}
8080
>
81-
LOGO
81+
PeerPrep
8282
</Typography>
8383

8484
<Box sx={{ flexGrow: 1, display: { xs: "flex", md: "none" } }}>
@@ -110,12 +110,12 @@ export default function Navbar() {
110110
display: { xs: "block", md: "none" },
111111
}}
112112
>
113-
{pages.map((page) => (
113+
{user && pages.map((page) => (
114114
<MenuItem key={page} onClick={handleCloseNavMenu}>
115115
<Typography textAlign="center">{page}</Typography>
116116
</MenuItem>
117117
))}
118-
{authPages.map((page) => (
118+
{!user && authPages.map((page) => (
119119
<MenuItem key={page.name} onClick={() => navigate(page.link)}>
120120
<Typography textAlign="center">{page.name}</Typography>
121121
</MenuItem>
@@ -127,7 +127,7 @@ export default function Navbar() {
127127
variant="h5"
128128
noWrap
129129
component="a"
130-
href="/"
130+
href="/home"
131131
sx={{
132132
mr: 2,
133133
display: { xs: "flex", md: "none" },
@@ -139,10 +139,10 @@ export default function Navbar() {
139139
textDecoration: "none",
140140
}}
141141
>
142-
LOGO
142+
PeerPrep
143143
</Typography>
144144
<Box sx={{ flexGrow: 1, display: { xs: "none", md: "flex" } }}>
145-
{pages.map((page) => (
145+
{user && pages.map((page) => (
146146
<Button
147147
key={page}
148148
onClick={handleCloseNavMenu}

frontend/src/index.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import App from "./pages/App";
66
import Login from "./pages/login";
77
import SignUp from "./pages/signup";
88
import AuthGuard from "./auth/AuthGuard";
9+
import RedirectIfLoggedIn from "./auth/RedirectIfLoggedIn";
910
import { DataContextProvider } from "./data/data.context";
1011

1112
import ProblemSolver from "./pages/ProblemSolver";
@@ -23,9 +24,23 @@ root.render(
2324
<DataContextProvider>
2425
<Routes>
2526
<Route path="/" element={<Landing />} />
26-
<Route path="/login" element={<Login />} />
27-
<Route path="/signup" element={<SignUp />} />
2827
<Route path="/landing" element={<Landing />} />
28+
<Route
29+
path="/login"
30+
element={
31+
<RedirectIfLoggedIn>
32+
<Login />
33+
</RedirectIfLoggedIn>
34+
}
35+
/>
36+
<Route
37+
path="/signup"
38+
element={
39+
<RedirectIfLoggedIn>
40+
<SignUp />
41+
</RedirectIfLoggedIn>
42+
}
43+
/>
2944
<Route
3045
path="/home"
3146
element={

frontend/src/pages/login.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ export default function Login() {
1717
<CssBaseline />
1818
<Navbar />
1919
<CenteredContainer>
20+
<Typography variant="h4" align="center" paddingBottom={5}>
21+
Log In
22+
</Typography>
2023
<TextField
2124
sx={{ width: "25ch" }}
2225
label="email"

frontend/src/pages/signup.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ export default function SignUp() {
2424
<CssBaseline />
2525
<Navbar />
2626
<CenteredContainer>
27+
<Typography variant="h4" align="center" paddingBottom={5}>
28+
Sign Up
29+
</Typography>
2730
<TextField
2831
sx={{ width: "25ch" }}
2932
label="email"

0 commit comments

Comments
 (0)