diff --git a/src/app/album/detail/[albumId]/page.tsx b/src/app/album/detail/[albumId]/page.tsx index 23c984fd..180ee4bc 100644 --- a/src/app/album/detail/[albumId]/page.tsx +++ b/src/app/album/detail/[albumId]/page.tsx @@ -1,4 +1,7 @@ import ScreenAlbumDetail from '@/feature/album/detail/components/ScreenAlbumDetail'; +import { ApiReturns, EP } from '@/global/api/ep'; +import { serverApi } from '@/global/utils/serverApi'; +import { redirect } from 'next/navigation'; interface PageProps { params: Promise<{ @@ -8,6 +11,23 @@ interface PageProps { export default async function Page({ params }: PageProps) { const { albumId } = await params; + let isExpired = false; + + try { + const { result } = await serverApi.get({ + path: EP.album.invitation(albumId), + }); + + if (result?.isExpired) { + isExpired = true; + } + } catch (e) { + console.log(e); + } + + if (isExpired) { + redirect(`/album/4cut/${albumId}`); + } return ; } diff --git a/src/app/album/entry/[albumId]/page.tsx b/src/app/album/entry/[albumId]/page.tsx index 9ce46732..51edede9 100644 --- a/src/app/album/entry/[albumId]/page.tsx +++ b/src/app/album/entry/[albumId]/page.tsx @@ -45,8 +45,27 @@ interface PageProps { params: Promise<{ albumId: string }>; } +import { redirect } from 'next/navigation'; + export default async function Page({ params }: PageProps) { const { albumId } = await params; + let isExpired = false; + + try { + const { result } = await serverApi.get({ + path: EP.album.invitation(albumId), + }); + + if (result?.isExpired) { + isExpired = true; + } + } catch (e) { + console.log(e); + } + + if (isExpired) { + redirect(`/album/4cut/${albumId}`); + } return ; } diff --git a/src/feature/album/detail/components/ScreenAlbumDetail.tsx b/src/feature/album/detail/components/ScreenAlbumDetail.tsx index 40ae99ee..a4e07df9 100644 --- a/src/feature/album/detail/components/ScreenAlbumDetail.tsx +++ b/src/feature/album/detail/components/ScreenAlbumDetail.tsx @@ -136,7 +136,7 @@ export default function ScreenAlbumDetail({ albumId }: ScreenAlbumDetailProps) { access_type: 'member', }); } - }, [albumInformData?.myRole]); + }, [albumInformData?.myRole, albumId]); useEffect(() => { const target = albumInfosRef.current;