import axios from 'axios' import toCamel from 'camelcase-keys' import { useEffect, useState } from 'react' import { Helmet } from 'react-helmet-async' import { useLocation, useParams } from 'react-router-dom' import PageTitle from '@/components/common/PageTitle' import MainArea from '@/components/layout/MainArea' import { API_BASE_URL, SITE_TITLE } from '@/config' import { cn } from '@/lib/utils' import type { WikiPageDiff } from '@/types' export default () => { const { id } = useParams () const location = useLocation () const [diff, setDiff] = useState (null) const query = new URLSearchParams (location.search) const from = query.get ('from') const to = query.get ('to') useEffect (() => { void (async () => { const res = await axios.get (`${ API_BASE_URL }/wiki/${ id }/diff`, { params: { from, to } }) setDiff (toCamel (res.data as any, { deep: true }) as WikiPageDiff) }) () }, []) return ( {`Wiki 差分: ${ diff?.title } | ${ SITE_TITLE }`} {diff?.title}
{diff ? ( diff.diff.map (d => ( {d.content == '\n' ?
: d.content}
))) : 'Loading...'}
) }