๐ Trouble Shooting
๋ฏธ๋์ด์ฟผ๋ฆฌ ์ ์ฉ์ด ์๋๋๋ก ์๋ํ์ง ์์
๋ฌธ์ ์ ์
- sign-in, sign-up ํ์ด์ง์์ ๋ชจ๋ฐ์ผ์์๋ ํฐ์ ํค๋, ๋ฐ์คํฌํ์์๋ ๊ธฐ์กด ํค๋๊ฐ ์ ์ฉ๋์ผํฉ๋๋ค.
- ํ์ง๋ง ๋ชจ๋ฐ์ผ์์๋ ๊ธฐ์กด(๊ฒ์ ) ํค๋๊ฐ ์ ์ฉ๋๋ ๋ฌธ์ ๋ฐ์ํ์ต๋๋ค.
- md:hidden์ ์ฌ์ฉํ์ง๋ง, ์๋ํ ๋๋ก ๋์ํ์ง ์์์ต๋๋ค.
๋ฌธ์ ์์ธ ๋ถ์
(1) ์ ์ญ ๋ ์ด์์์์ ํค๋๊ฐ ํญ์ ๋ ๋๋ง
- RootLayout.tsx์์ ๋ชจ๋ ํ์ด์ง์ Header.tsx(๊ฒ์ ํค๋)๋ฅผ ๋ ๋๋งํ๊ณ ์์์ต๋๋ค.
- ์ฆ, auth ํ์ด์ง์์๋ Header.tsx๊ฐ ๋ ๋๋ง๋๋ฉด์ ๋ชจ๋ฐ์ผ์์๋ ๊ฒ์ ํค๋๊ฐ ๊ทธ๋๋ก ํ์๋์์ต๋๋ค.
(2)๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ ์ฉ์ด ์๋๋๋ก ์๋ ์๋จ
- md:hidden์ ์ฌ์ฉํ์ฌ AuthHeader.tsx(ํฐ์ ํค๋)๋ฅผ ๋ชจ๋ฐ์ผ์์ ๋ณด์ด๊ฒ ํ์ง๋ง, ์ ์ญ์ ์ผ๋ก ๋ ๋๋ง๋๋ Header.tsx๊ฐ ๋ฎ์ด์์์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- ๋ฐ์คํฌํ์์๋ md:hidden์ด ์ ์ฉ๋์ง ์์ผ๋ฏ๋ก, ์ ์์ ์ผ๋ก ๊ธฐ์กด ํค๋๊ฐ ์ ์ง๋์์ต๋๋ค.
- ํ์ง๋ง ๋ชจ๋ฐ์ผ์์๋ ์ ์ญ์ ์ผ๋ก ๋ ๋๋ง๋ ํค๋๊ฐ ์ต์์์์ ์ ์ง๋๋ฉด์ ์ํ๋ ๋๋ก ๋์ํ์ง ์์์ต๋๋ค.
ํด๊ฒฐ ๊ณผ์
(1) RootLayout.tsx์์ auth ํ์ด์ง ์ฌ๋ถ ์ฒดํฌํ์ฌ ๊ธฐ์กด ํค๋ ์ ์ธ
- headers().get("next-url")์ ์ฌ์ฉํด ํ์ฌ ๊ฒฝ๋ก๊ฐ sign-in ๋๋ sign-up์ธ์ง ํ์ธํ์ต๋๋ค.
- isAuthPage๊ฐ true๋ฉด Header.tsx(๊ธฐ์กด ํค๋)๋ฅผ ๋ ๋๋งํ์ง ์๋๋ก ์์ ํ์ต๋๋ค.
const pathname = headers().get("next-url") || "";
const isAuthPage = pathname.startsWith("/sign-in") || pathname.startsWith("/sign-up");
return (
<body className="font-pretendard">
{!isAuthPage && <Header />}
{children}
<Footer />
<InquiryFloatingButton />
</body>
);
(2) auth ํ์ด์ง์ ๋ณ๋ ๋ ์ด์์(AuthLayout.tsx) ์ ์ฉ
- AuthHeader.tsx(ํฐ์ ํค๋)๋ฅผ ๋ชจ๋ฐ์ผ์์๋ง ๋ณด์ด๋๋ก ์ถ๊ฐํ์ต๋๋ค.
- ๋ฐ์คํฌํ์์๋ ๊ธฐ์กด ํค๋๋ฅผ ์ ์งํ๊ฒ ํ์ต๋๋ค.
import AuthHeader from "@/components/layout/AuthHeader";
import Header from "@/components/layout/Header";
import { headers } from "next/headers";
export default function AuthLayout({ children }: { children: React.ReactNode }) {
const pathname = headers().get("next-url") || "";
const isAuthPage = pathname.startsWith("/sign-in") || pathname.startsWith("/sign-up");
return (
<>
<div className="md:hidden">
<AuthHeader />
</div>
<div className="hidden md:block">
<Header />
</div>
<main>{children}</main>
</>
);
}
์ต์ข ๊ฒฐ๊ณผ
- ๋ชจ๋ฐ์ผ์์๋ AuthHeader.tsx(ํฐ์ ํค๋)๋ง ์ ์ฉํ์์ต๋๋ค.
- ๋ฐ์คํฌํ์์๋ ๊ธฐ์กด Header.tsx(๊ฒ์ ํค๋) ์ ์ง๋ฉ๋๋ค.
- auth ํ์ด์ง์์๋ง ๊ธฐ์กด ํค๋๋ฅผ ์ ์ธํ๋๋ก RootLayout.tsx ์์ ์๋ฃํ์์ต๋๋ค.