diff --git a/src/app/(with-header-sidebar)/dashboard/[id]/components/CreateColumnModal.tsx b/src/app/(with-header-sidebar)/dashboard/[id]/components/CreateColumnModal.tsx index a01b91a..e9cbfc8 100644 --- a/src/app/(with-header-sidebar)/dashboard/[id]/components/CreateColumnModal.tsx +++ b/src/app/(with-header-sidebar)/dashboard/[id]/components/CreateColumnModal.tsx @@ -46,7 +46,7 @@ export default function CreateColumnModal() { { diff --git a/src/app/(with-header-sidebar)/dashboard/[id]/edit/_hooks/useMember.ts b/src/app/(with-header-sidebar)/dashboard/[id]/edit/_hooks/useMember.ts index 369a73f..f198a27 100644 --- a/src/app/(with-header-sidebar)/dashboard/[id]/edit/_hooks/useMember.ts +++ b/src/app/(with-header-sidebar)/dashboard/[id]/edit/_hooks/useMember.ts @@ -7,12 +7,14 @@ import { toast } from '@/store/toastStore'; interface MemberState { page: number; totalPages: number; + totalCount: number; members: Member[]; } const DEFAULT_MEMBERS_STATE: MemberState = { page: 1, totalPages: 0, + totalCount: 0, members: [], }; @@ -44,6 +46,7 @@ const useMember = (dashboardId: string | null, pageSize = 4) => { ...prevState, members, totalPages, + totalCount, })); } catch (error) { throw error; @@ -84,6 +87,7 @@ const useMember = (dashboardId: string | null, pageSize = 4) => { page: memberState.page, members: memberState.members, totalPages: memberState.totalPages, + totalCount: memberState.totalCount, isLoading, error, handlePageChange, diff --git a/src/components/header/DashboardMembers.tsx b/src/components/header/DashboardMembers.tsx index 025d8ce..40e5de1 100644 --- a/src/components/header/DashboardMembers.tsx +++ b/src/components/header/DashboardMembers.tsx @@ -15,12 +15,12 @@ export default function DashboardMembers() { const dashboard = useDashboardStore((state) => state.dashboard); const { isMobile } = useWindowSize(); - const { members, totalPages } = useMember( + const { members, totalCount } = useMember( dashboard?.id.toString() || null, MEMBERS_VIEW_COUNT.desktop ); - if (totalPages === 0) { + if (totalCount === 0) { return null; } @@ -31,7 +31,7 @@ export default function DashboardMembers() { return (
{members - .slice(0, totalPages > maxViewCount ? maxViewCount - 1 : maxViewCount) + .slice(0, totalCount > maxViewCount ? maxViewCount - 1 : maxViewCount) .map(({ id, nickname, profileImageUrl }) => ( ))} - {totalPages > maxViewCount && ( + {totalCount > maxViewCount && ( )} diff --git a/src/components/header/UserSection.tsx b/src/components/header/UserSection.tsx index a6e71c9..c12c393 100644 --- a/src/components/header/UserSection.tsx +++ b/src/components/header/UserSection.tsx @@ -25,7 +25,7 @@ export default function UserSection() { const handleLogout = () => { clearUser(); setTimeout(() => { - router.push('/'); + router.replace('/'); }, 0); // 비동기적 push 호출 보장 }; diff --git a/src/middleware.ts b/src/middleware.ts index c447acb..5e6dc2e 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -8,7 +8,7 @@ export function middleware(request: NextRequest) { return NextResponse.redirect(new URL('/mydashboard', request.url)); } - if (!userToken) { + if (!userToken && request.nextUrl.pathname !== '/') { return NextResponse.redirect(new URL('/login', request.url)); }