This commit is contained in:
+33
-1
@@ -6,6 +6,8 @@ import TopNav from './components/TopNav'
|
||||
import TagSidebar from './components/TagSidebar'
|
||||
import PostPage from './pages/PostPage'
|
||||
import PostDetailPage from './pages/PostDetailPage'
|
||||
import { API_BASE_URL } from './config'
|
||||
import axios from 'axios'
|
||||
|
||||
type Tag = { id: number
|
||||
name: string
|
||||
@@ -17,18 +19,48 @@ type Post = { id: number
|
||||
thumbnail: string
|
||||
tags: Tag[] }
|
||||
|
||||
type User = { id: number
|
||||
name: string | null
|
||||
inheritanceCode: string
|
||||
role: string }
|
||||
|
||||
|
||||
const App = () => {
|
||||
const [posts, setPosts] = useState<Post[]> ([])
|
||||
const [user, setUser] = useState<User | null> (null)
|
||||
|
||||
useEffect (() => {
|
||||
const createUser = () => (
|
||||
axios.post (`${ API_BASE_URL }/users`)
|
||||
.then (res => {
|
||||
if (res.data.code)
|
||||
{
|
||||
localStorage.setItem ('user_code', res.data.code)
|
||||
setUser (res.data)
|
||||
}
|
||||
}))
|
||||
|
||||
const code = localStorage.getItem ('user_code')
|
||||
if (code)
|
||||
{
|
||||
void (axios.post (`${ API_BASE_URL }/users/verify`, { code })
|
||||
.then (res => {
|
||||
if (res.data.valid)
|
||||
setUser (res.data.user)
|
||||
else
|
||||
createUser ()
|
||||
}))
|
||||
}
|
||||
else
|
||||
createUser ()
|
||||
|
||||
alert ('このサイトはまだ作りかけです!!!!\n出てけ!!!!!!!!!!!!!!!!!!!!')
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<Router>
|
||||
<div className="flex flex-col h-screen w-screen">
|
||||
<TopNav />
|
||||
<TopNav user={user} />
|
||||
<div className="flex flex-1">
|
||||
<TagSidebar posts={posts} setPosts={setPosts} />
|
||||
<main className="flex-1 overflow-y-auto p-4">
|
||||
|
||||
Reference in New Issue
Block a user