|
|
|
@@ -1,4 +1,4 @@ |
|
|
|
import { AnimatePresence, LayoutGroup } from 'framer-motion' |
|
|
|
import { AnimatePresence, LayoutGroup, motion } from 'framer-motion' |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { BrowserRouter, |
|
|
|
Navigate, |
|
|
|
@@ -46,38 +46,36 @@ const RouteTransitionWrapper = ({ user, setUser }: { |
|
|
|
const location = useLocation () |
|
|
|
|
|
|
|
return ( |
|
|
|
<LayoutGroup id="gallery-shared"> |
|
|
|
<AnimatePresence mode="wait"> |
|
|
|
<Routes location={location}> |
|
|
|
<Route path="/" element={<Navigate to="/posts" replace/>}/> |
|
|
|
<Route path="/posts" element={<PostListPage/>}/> |
|
|
|
<Route path="/posts/new" element={<PostNewPage user={user}/>}/> |
|
|
|
<Route path="/posts/search" element={<PostSearchPage/>}/> |
|
|
|
<Route path="/posts/:id" element={<PostDetailRoute user={user}/>}/> |
|
|
|
<Route path="/posts/changes" element={<PostHistoryPage/>}/> |
|
|
|
<Route path="/tags" element={<TagListPage/>}/> |
|
|
|
<Route path="/tags/nico" element={<NicoTagListPage user={user}/>}/> |
|
|
|
<Route path="/theatres/:id" element={<TheatreDetailPage/>}/> |
|
|
|
<Route path="/materials" element={<MaterialBasePage/>}> |
|
|
|
<Route index element={<MaterialListPage/>}/> |
|
|
|
<Route path="new" element={<MaterialNewPage/>}/> |
|
|
|
<Route path=":id" element ={<MaterialDetailPage/>}/> |
|
|
|
</Route> |
|
|
|
{/* <Route path="/materials/search" element={<MaterialSearchPage/>}/> */} |
|
|
|
<Route path="/wiki" element={<WikiSearchPage/>}/> |
|
|
|
<Route path="/wiki/:title" element={<WikiDetailPage/>}/> |
|
|
|
<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}/>}/> |
|
|
|
<Route path="/settings" element={<Navigate to="/users/settings" replace/>}/> |
|
|
|
<Route path="/tos" element={<TOSPage/>}/> |
|
|
|
<Route path="/more" element={<MorePage/>}/> |
|
|
|
<Route path="*" element={<NotFound/>}/> |
|
|
|
</Routes> |
|
|
|
</AnimatePresence> |
|
|
|
</LayoutGroup>) |
|
|
|
<AnimatePresence mode="wait"> |
|
|
|
<Routes location={location}> |
|
|
|
<Route path="/" element={<Navigate to="/posts" replace/>}/> |
|
|
|
<Route path="/posts" element={<PostListPage/>}/> |
|
|
|
<Route path="/posts/new" element={<PostNewPage user={user}/>}/> |
|
|
|
<Route path="/posts/search" element={<PostSearchPage/>}/> |
|
|
|
<Route path="/posts/:id" element={<PostDetailRoute user={user}/>}/> |
|
|
|
<Route path="/posts/changes" element={<PostHistoryPage/>}/> |
|
|
|
<Route path="/tags" element={<TagListPage/>}/> |
|
|
|
<Route path="/tags/nico" element={<NicoTagListPage user={user}/>}/> |
|
|
|
<Route path="/theatres/:id" element={<TheatreDetailPage/>}/> |
|
|
|
<Route path="/materials" element={<MaterialBasePage/>}> |
|
|
|
<Route index element={<MaterialListPage/>}/> |
|
|
|
<Route path="new" element={<MaterialNewPage/>}/> |
|
|
|
<Route path=":id" element ={<MaterialDetailPage/>}/> |
|
|
|
</Route> |
|
|
|
{/* <Route path="/materials/search" element={<MaterialSearchPage/>}/> */} |
|
|
|
<Route path="/wiki" element={<WikiSearchPage/>}/> |
|
|
|
<Route path="/wiki/:title" element={<WikiDetailPage/>}/> |
|
|
|
<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}/>}/> |
|
|
|
<Route path="/settings" element={<Navigate to="/users/settings" replace/>}/> |
|
|
|
<Route path="/tos" element={<TOSPage/>}/> |
|
|
|
<Route path="/more" element={<MorePage/>}/> |
|
|
|
<Route path="*" element={<NotFound/>}/> |
|
|
|
</Routes> |
|
|
|
</AnimatePresence>) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@@ -135,10 +133,15 @@ export default (() => { |
|
|
|
<> |
|
|
|
<RouteBlockerOverlay/> |
|
|
|
<BrowserRouter> |
|
|
|
<div className="flex flex-col h-dvh w-full"> |
|
|
|
<TopNav user={user}/> |
|
|
|
<RouteTransitionWrapper user={user} setUser={setUser}/> |
|
|
|
</div> |
|
|
|
<LayoutGroup> |
|
|
|
<motion.div |
|
|
|
layout="position" |
|
|
|
transition={{ layout: { duration: .2, ease: 'easeOut' } }} |
|
|
|
className="flex flex-col h-dvh w-full overflow-y-hidden"> |
|
|
|
<TopNav user={user}/> |
|
|
|
<RouteTransitionWrapper user={user} setUser={setUser}/> |
|
|
|
</motion.div> |
|
|
|
</LayoutGroup> |
|
|
|
<Toaster/> |
|
|
|
</BrowserRouter> |
|
|
|
</>) |
|
|
|
|