Skip to content

Commit fde1bca

Browse files
committed
fix: use client component of note home page
Signed-off-by: Innei <[email protected]>
1 parent 93a4f23 commit fde1bca

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

src/app/(app)/notes/page.tsx

+26-17
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
1-
import type { NoteWrappedPayload } from '@mx-space/api-client'
1+
'use client'
22

3-
import { NotFound404 } from '~/components/common/404'
4-
import { apiClient } from '~/lib/request'
3+
import { useQuery } from '@tanstack/react-query'
4+
import { useEffect } from 'react'
5+
import { useRouter } from 'next/navigation'
56

6-
import Redirect from './redirect'
7+
import { FullPageLoading } from '~/components/ui/loading'
8+
import { apiClient } from '~/lib/request'
79

8-
export default async function Page() {
9-
const data = await fetch(apiClient.note.proxy.latest.toString(true), {
10-
next: {
11-
revalidate: 60 * 60,
12-
tags: ['note'],
10+
export default function Page() {
11+
const {
12+
data: nid,
13+
isError,
14+
isLoading,
15+
} = useQuery({
16+
queryFn: async () => {
17+
return apiClient.note.getLatest()
18+
},
19+
queryKey: ['note-latest'],
20+
select(data) {
21+
return data.data.nid
1322
},
1423
})
15-
.then((res) => res.json() as Promise<NoteWrappedPayload>)
16-
.catch(() => {
17-
return null
18-
})
1924

20-
if (!data || !data.data) {
21-
return <NotFound404 />
22-
}
23-
return <Redirect nid={data.data?.nid} />
25+
const router = useRouter()
26+
useEffect(() => {
27+
if (!nid) return
28+
29+
router.replace(`/notes/${nid}`)
30+
}, [nid, router])
31+
32+
return <FullPageLoading />
2433
}

0 commit comments

Comments
 (0)