This commit is contained in:
2025-07-17 04:51:57 +09:00
parent 88bf6c8446
commit 315d511f41
11 changed files with 136 additions and 55 deletions
+25 -9
View File
@@ -11,6 +11,7 @@ import NotFound from '@/pages/NotFound'
import PostDetailPage from '@/pages/posts/PostDetailPage'
import PostListPage from '@/pages/posts/PostListPage'
import PostNewPage from '@/pages/posts/PostNewPage'
import ServiceUnavailable from '@/pages/ServiceUnavailable'
import SettingPage from '@/pages/users/SettingPage'
import WikiDetailPage from '@/pages/wiki/WikiDetailPage'
import WikiDiffPage from '@/pages/wiki/WikiDiffPage'
@@ -24,6 +25,7 @@ import type { User } from '@/types'
export default () => {
const [user, setUser] = useState<User | null> (null)
const [status, setStatus] = useState (200)
useEffect (() => {
const createUser = async () => {
@@ -40,18 +42,32 @@ export default () => {
if (code)
{
void (async () => {
const res = await axios.post (`${ API_BASE_URL }/users/verify`, { code })
const data = res.data as { valid: boolean, user: any }
if (data.valid)
setUser (toCamel (data.user, { deep: true }))
else
await createUser ()
try
{
const res = await axios.post (`${ API_BASE_URL }/users/verify`, { code })
const data = res.data as { valid: boolean, user: any }
if (data.valid)
setUser (toCamel (data.user, { deep: true }))
else
await createUser ()
}
catch (err)
{
if (axios.isAxiosError (err))
setStatus (err.status ?? 200)
}
}) ()
}
else
createUser ()
}, [])
switch (status)
{
case 503:
return <ServiceUnavailable />
}
return (
<>
<Router>
@@ -61,13 +77,13 @@ export default () => {
<Routes>
<Route path="/" element={<Navigate to="/posts" replace />} />
<Route path="/posts" element={<PostListPage />} />
<Route path="/posts/new" element={<PostNewPage />} />
<Route path="/posts/new" element={<PostNewPage user={user} />} />
<Route path="/posts/:id" element={<PostDetailPage user={user} />} />
<Route path="/tags/nico" element={<NicoTagListPage user={user} />} />
<Route path="/wiki" element={<WikiSearchPage />} />
<Route path="/wiki/:title" element={<WikiDetailPage />} />
<Route path="/wiki/new" element={<WikiNewPage />} />
<Route path="/wiki/:id/edit" element={<WikiEditPage />} />
<Route path="/wiki/new" element={<WikiNewPage user={user} />} />
<Route path="/wiki/:id/edit" element={<WikiEditPage user={user} />} />
<Route path="/wiki/:id/diff" element={<WikiDiffPage />} />
<Route path="/wiki/changes" element={<WikiHistoryPage />} />
<Route path="/users/settings" element={<SettingPage user={user} setUser={setUser} />} />