-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.tsx
47 lines (43 loc) · 910 Bytes
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import type React from "react";
import { useState } from "react";
import {
BrowserRouter as Router,
Route,
Routes,
Navigate,
} from "react-router-dom";
import Login from "./components/Login";
import MailPage from "./components/Page";
import type { User } from "./types";
const App: React.FC = () => {
const [user, setUser] = useState<User | null>({
username: "aaaa",
accessToken: "bbbb",
});
const handleLogin = (username: string, accessToken: string) => {
setUser({ username, accessToken });
};
return (
<div>
<Router>
<Routes>
<Route
path="/login"
element={
user ? (
<Navigate to="/inbox" replace />
) : (
<Login onLogin={handleLogin} />
)
}
/>
<Route
path="/*"
element={user ? <MailPage /> : <Navigate to="/login" replace />}
/>
</Routes>
</Router>
</div>
);
};
export default App;