From 25794236e967d084c3ddd1cada1cdc3484ced974 Mon Sep 17 00:00:00 2001 From: dasosann Date: Fri, 29 May 2026 13:10:41 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=A7=8C=EB=A3=8C=20=EC=95=A8?= =?UTF-8?q?=EB=B2=94=20=EA=B0=95=EC=A0=9C=20=EC=9D=B4=EB=8F=99=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/album/detail/[albumId]/page.tsx | 15 +++++++++++++++ src/app/album/entry/[albumId]/page.tsx | 14 ++++++++++++++ .../album/detail/components/ScreenAlbumDetail.tsx | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/app/album/detail/[albumId]/page.tsx b/src/app/album/detail/[albumId]/page.tsx index 23c984fd..138f7469 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<{ @@ -9,5 +12,17 @@ interface PageProps { export default async function Page({ params }: PageProps) { const { albumId } = await params; + try { + const { result } = await serverApi.get({ + path: EP.album.invitation(albumId), + }); + + if (result?.isExpired) { + redirect(`/album/4cut/${albumId}`); + } + } catch (e) { + console.log(e); + } + return ; } diff --git a/src/app/album/entry/[albumId]/page.tsx b/src/app/album/entry/[albumId]/page.tsx index 9ce46732..81839765 100644 --- a/src/app/album/entry/[albumId]/page.tsx +++ b/src/app/album/entry/[albumId]/page.tsx @@ -45,8 +45,22 @@ interface PageProps { params: Promise<{ albumId: string }>; } +import { redirect } from 'next/navigation'; + export default async function Page({ params }: PageProps) { const { albumId } = await params; + try { + const { result } = await serverApi.get({ + path: EP.album.invitation(albumId), + }); + + if (result?.isExpired) { + redirect(`/album/4cut/${albumId}`); + } + } catch (e) { + console.log(e); + } + 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; From 329cca9905dd1e763cf3de073ba8b7dac5d1b9ac Mon Sep 17 00:00:00 2001 From: dasosann Date: Fri, 29 May 2026 13:27:43 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20redirect=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/album/detail/[albumId]/page.tsx | 7 ++++++- src/app/album/entry/[albumId]/page.tsx | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app/album/detail/[albumId]/page.tsx b/src/app/album/detail/[albumId]/page.tsx index 138f7469..180ee4bc 100644 --- a/src/app/album/detail/[albumId]/page.tsx +++ b/src/app/album/detail/[albumId]/page.tsx @@ -11,6 +11,7 @@ interface PageProps { export default async function Page({ params }: PageProps) { const { albumId } = await params; + let isExpired = false; try { const { result } = await serverApi.get({ @@ -18,11 +19,15 @@ export default async function Page({ params }: PageProps) { }); if (result?.isExpired) { - redirect(`/album/4cut/${albumId}`); + 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 81839765..51edede9 100644 --- a/src/app/album/entry/[albumId]/page.tsx +++ b/src/app/album/entry/[albumId]/page.tsx @@ -49,6 +49,7 @@ 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({ @@ -56,11 +57,15 @@ export default async function Page({ params }: PageProps) { }); if (result?.isExpired) { - redirect(`/album/4cut/${albumId}`); + isExpired = true; } } catch (e) { console.log(e); } + if (isExpired) { + redirect(`/album/4cut/${albumId}`); + } + return ; }