@@ -19,7 +19,15 @@ import { getAuthStatus, getMe } from "@/lib/api/auth/auth.server";
1919import ConcertChatButton from "./ConcertChatButton" ;
2020import { PLACEHOLDER_IMAGE } from "@/components/home/upcoming-slider/constants" ;
2121
22- export default async function ConcertHeader ( { concertId } : { concertId : string } ) {
22+ export default async function ConcertHeader ( {
23+ concertId,
24+ isLoggedIn,
25+ isChatAvailable,
26+ } : {
27+ concertId : string ;
28+ isLoggedIn : boolean ;
29+ isChatAvailable : boolean ;
30+ } ) {
2331 const [ concertDetail , concertTicketing , isAuthenticated ] = await Promise . all ( [
2432 getConcertDetail ( { concertId } ) ,
2533 getTicketOfficesByConcertId ( { concertId } ) ,
@@ -41,11 +49,11 @@ export default async function ConcertHeader({ concertId }: { concertId: string }
4149 }
4250
4351 return (
44- < section className = "header bg-bg-sub pb-6 lg:px-15 lg:py-10" >
52+ < section className = "header bg-bg-sub lg:px-15 lg:py-10" >
4553 { /* ๋ชจ๋ฐ์ผ: flex-col (์ธ๋ก), md ์ด์: flex-row (๊ฐ๋ก) */ }
46- < div className = "mx-auto flex w-full max-w-400 flex-col gap-5 lg:flex-row lg:items-start lg :gap-8" >
54+ < div className = "mx-auto flex w-full max-w-400 flex-col gap-5 lg:flex-row lg:items-start xl :gap-8" >
4755 { /* ํฌ์คํฐ ์์ญ: ๋ชจ๋ฐ์ผ w-full, md ์ด์ w-2/5 */ }
48- < div className = "border-border w-full flex-1 overflow-hidden lg:sticky lg:top-30 lg:rounded-2xl lg:border" >
56+ < div className = "border-border w-full flex-1 overflow-hidden lg:sticky lg:top-30 lg:rounded-2xl lg:border xl:w-2/5 " >
4957 < AspectRatio ratio = { 320 / 426.5 } >
5058 < Image
5159 src = { concertDetail . posterUrl ?? PLACEHOLDER_IMAGE }
@@ -59,7 +67,7 @@ export default async function ConcertHeader({ concertId }: { concertId: string }
5967 </ div >
6068
6169 { /* ์ ๋ณด ์์ญ */ }
62- < div className = "bg-bg-main border-border sticky top-4 mx-5 flex flex-1 flex-col gap-4 rounded-2xl border p-5 lg:top-30 lg:mx-0 lg :gap-8 lg :p-10" >
70+ < div className = "bg-bg-main border-border sticky top-4 mx-5 flex flex-1 flex-col gap-4 rounded-2xl border p-5 lg:top-30 lg:mx-0 xl :gap-8 xl :p-10" >
6371 < div className = "title flex items-start justify-between gap-4" >
6472 < div className = "flex flex-col gap-3 md:gap-4" >
6573 { concertDetail . concertArtists . length > 0 && (
@@ -74,19 +82,18 @@ export default async function ConcertHeader({ concertId }: { concertId: string }
7482 ) ) }
7583 </ div >
7684 ) }
77- < div className = "flex flex-col gap-1" >
78- < h2 className = "text-text-main text-2xl font-bold lg:text-4xl" >
79- { concertDetail . name }
80- </ h2 >
81- < p className = "text-text-sub text-base md:text-lg lg:text-xl" >
82- { concertDetail . description }
83- </ p >
84- </ div >
85+ < h2 className = "text-text-main text-2xl font-bold xl:text-4xl" >
86+ { concertDetail . name }
87+ </ h2 >
8588 </ div >
8689
8790 { /* ๋ฒํผ ๊ทธ๋ฃน: ๋ชจ๋ฐ์ผ์์๋ ์๋จ ์ฐ์ธก ํน์ ํ๋จ ๋ฐฐ์น ๋ฑ ๊ณ ๋ ค ๊ฐ๋ฅ */ }
8891 < div className = "flex gap-2" >
89- < ConcertChatButton concertId = { concertDetail . concertId } />
92+ < ConcertChatButton
93+ concertId = { concertDetail . concertId }
94+ isLoggedIn = { isLoggedIn }
95+ isChatAvailable = { isChatAvailable }
96+ />
9097 < ConcertLikeButton
9198 concertId = { concertDetail . concertId }
9299 isAuthenticated = { isAuthenticated }
@@ -96,7 +103,7 @@ export default async function ConcertHeader({ concertId }: { concertId: string }
96103 </ div >
97104
98105 { /* ์ ๋ณด ๊ทธ๋ฆฌ๋: ๋ชจ๋ฐ์ผ 1์ด, md ์ด์ 2์ด */ }
99- < div className = "border-border grid grid-cols-1 gap-x-4 gap-y-4 border-y py-6 md :grid-cols-2 md :gap-y-6 md :py-8" >
106+ < div className = "border-border grid grid-cols-1 gap-x-4 gap-y-4 border-y py-6 xl :grid-cols-2 xl :gap-y-6 xl :py-8" >
100107 < ConcertHeaderInfo
101108 type = "date"
102109 label = "๋ ์ง ๋ฐ ์๊ฐ"
0 commit comments