This commit is contained in:
2025-06-07 18:54:10 +09:00
parent e8760ca1d8
commit b61027be4b
9 changed files with 226 additions and 3 deletions
+2
View File
@@ -7,6 +7,7 @@ import TagSidebar from './components/TagSidebar'
import PostPage from './pages/PostPage'
import PostNewPage from './pages/PostNewPage'
import PostDetailPage from './pages/PostDetailPage'
import WikiEditPage from './pages/WikiEditPage'
import { API_BASE_URL } from './config'
import axios from 'axios'
import { Toaster } from '@/components/ui/toaster'
@@ -76,6 +77,7 @@ const App = () => {
<Route path="/posts/new" element={<PostNewPage />} />
<Route path="/posts/:id" element={<PostDetailPage posts={posts} setPosts={setPosts} />} />
<Route path="/tags/:tag" element={<TagPage />} />
<Route path="/wiki/:name" element={<WikiEditPage />} />
</Routes>
</main>
</div>
+40
View File
@@ -0,0 +1,40 @@
import { useParams } from 'react-router-dom'
import { useEffect, useState } from 'react'
import axios from 'axios'
const WikiEditPage = () => {
const { name } = useParams<{ name: string }> ()
const [html, setHtml] = useState('')
const [loading, setLoading] = useState(true)
useEffect(() => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = '/wiki/custom.css' // Gollum の静的 CSS にアクセスできるようにしとく
document.head.appendChild(link)
return () => {
document.head.removeChild(link)
}
}, [])
useEffect(() => {
setLoading(true)
axios
.get(`/api/wiki/edit/${encodeURIComponent(name)}`, {
headers: { 'X-Transfer-Code': localStorage.getItem('user_code') || '' }
})
.then((res) => setHtml(res.data))
.finally(() => setLoading(false))
}, [name])
return loading ? (
<p>...</p>
) : (
<div dangerouslySetInnerHTML={{ __html: html }} />
)
}
export default WikiEditPage