diff --git a/src/apis/services/httpMethod.ts b/src/apis/services/httpMethod.ts index b9421d1e..26de6888 100644 --- a/src/apis/services/httpMethod.ts +++ b/src/apis/services/httpMethod.ts @@ -1,7 +1,10 @@ -import axiosInstance from '@/lib/axiosInstance'; +import axiosInstance, { setAuthToken } from '@/lib/axiosInstance'; -export async function GET(url: string): Promise { +export async function GET(url: string, token?: string): Promise { try { + if (token) { + setAuthToken(token); + } const response = await axiosInstance.get(url); return response.data; } catch (error) { diff --git a/src/app/(route)/dashboard/page.tsx b/src/app/(route)/dashboard/page.tsx index 774e0849..35afaae0 100644 --- a/src/app/(route)/dashboard/page.tsx +++ b/src/app/(route)/dashboard/page.tsx @@ -1,17 +1,31 @@ +import { Suspense } from 'react'; + +import { cookies } from 'next/headers'; + import { Header } from '@/components/common/Header'; import { PageContainer } from '@/components/common/PageContainer'; import { Follower } from '@/components/Dashboard/Follower'; import { GoalList } from '@/components/Dashboard/GoalList'; import { MyProgress } from '@/components/Dashboard/MyProgress'; import { RecentTodos } from '@/components/Dashboard/RecentTodos'; +import { TodoListSkeleton } from '@/components/Skeletons/TodoListSkeleton'; +import { recentTodosOptions } from '@/hooks/apis/Dashboard/useRecentTodosQuery'; +import { ServerFetchBoundary } from '@/lib/query/ServerFetchBoundary'; + +export default async function DashBoardPage() { + const cookieStore = await cookies(); + const token = cookieStore.get('token')?.value || ''; -export default function DashBoardPage() { return ( <>
- + }> + + + + diff --git a/src/app/(route)/layout.tsx b/src/app/(route)/layout.tsx index 0571f405..38c77987 100644 --- a/src/app/(route)/layout.tsx +++ b/src/app/(route)/layout.tsx @@ -1,17 +1,29 @@ -import { ReactNode } from 'react'; +import { ReactNode, Suspense } from 'react'; import dynamic from 'next/dynamic'; +import { cookies } from 'next/headers'; + +import { Spinner } from '@/components/common/Spinner'; +import { goalsOptions } from '@/hooks/apis/useGoalsQuery'; +import { ServerFetchBoundary } from '@/lib/query/ServerFetchBoundary'; const Sidebar = dynamic(() => import('@/components/Sidebar')); -export default function RootLayout({ +export default async function RootLayout({ children, }: Readonly<{ children: ReactNode; }>) { + const cookieStore = await cookies(); + const token = cookieStore.get('token')?.value || ''; + return (
- + }> + + + + {children}
); diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx index 23d2caaa..f129a2a9 100644 --- a/src/app/not-found.tsx +++ b/src/app/not-found.tsx @@ -1,6 +1,5 @@ 'use client'; -import dynamic from 'next/dynamic'; import { useRouter } from 'next/navigation'; import LogoMain from '@/assets/svg/svg-logo-main.svg'; @@ -8,14 +7,11 @@ import { Button } from '@/components/common/Button/Button'; import { Header } from '@/components/common/Header'; import { PageContainer } from '@/components/common/PageContainer'; -const Sidebar = dynamic(() => import('@/components/Sidebar')); - export default function NotFound() { const router = useRouter(); return (
-
diff --git a/src/components/Dashboard/RecentTodos/index.tsx b/src/components/Dashboard/RecentTodos/index.tsx index 4b92ba18..97e99a3e 100644 --- a/src/components/Dashboard/RecentTodos/index.tsx +++ b/src/components/Dashboard/RecentTodos/index.tsx @@ -5,7 +5,6 @@ import { FaAngleRight } from 'react-icons/fa6'; import Link from 'next/link'; import { DashboardItemContainer } from '@/components/Dashboard/DashboardItemContainer'; -import { TodoListSkeleton } from '@/components/Skeletons/TodoListSkeleton'; import { Button } from '@/components/common/Button/Button'; import { Card } from '@/components/common/Card'; import { NoDataText } from '@/components/common/NoDataText'; @@ -18,7 +17,7 @@ import { useSidebarStore } from '@/store/useSidebarStore'; import { useTodoModalStore } from '@/store/useTodoModalStore'; export const RecentTodos = () => { - const { todos, isLoading } = useRecentTodosQuery(); + const { todos } = useRecentTodosQuery(); const { goals } = useGoalsQuery(); const { open: openModal } = useTodoModalStore(); @@ -36,9 +35,7 @@ export const RecentTodos = () => { 모두 보기 - {isLoading && } - - {!isLoading && !hasGoals && ( + {!hasGoals && (