@@ -10,6 +10,7 @@ import BookingModal from '@/ui/BookingModal';
1010import { useState } from 'react' ;
1111import TabletPopup from './TabletPopup' ;
1212import DatePicker from '../DatePicker/DatePicker' ;
13+ import Button from '../Button' ;
1314
1415export default function BookingInterface ( ) {
1516 const handleBooking = ( ) => {
@@ -20,86 +21,82 @@ export default function BookingInterface() {
2021 const [ openTablet , setOpenTablet ] = useState ( false ) ;
2122
2223 return (
23- < div className = 'flex min-h-screen items-center justify-center bg-gray-50 p-4' >
24- < div className = 'w-full max-w-sm' >
25- { /* PC */ }
26- < div className = 'hidden rounded-lg border border-gray-800 bg-white p-6 lg:block' >
27- < div className = 'flex flex-col gap-10 px-20' >
24+ < div className = 'w-full max-w-sm' >
25+ { /* PC */ }
26+ < div className = 'hidden rounded-lg border border-gray-800 bg-white p-6 lg:block' >
27+ < div className = 'flex flex-col gap-10 px-20' >
28+ < PriceDisplay />
29+ < div className = 'flex justify-center' >
30+ < DatePicker />
31+ </ div >
32+ < TimeSelector />
33+ < ParticipantsSelector />
34+ < BookingButton onClick = { handleBooking } > 예약하기</ BookingButton >
35+ < TotalPriceDisplay />
36+ </ div >
37+ </ div >
38+
39+ { /* 태블릿 */ }
40+ < div className = 'relative hidden w-full max-w-sm rounded-lg border border-gray-800 bg-white p-6 md:block lg:hidden' >
41+ < div className = 'flex flex-col gap-20 px-18' >
42+ < div className = 'mb-6' >
2843 < PriceDisplay />
29- < div className = 'flex justify-center' >
30- < DatePicker />
31- </ div >
32- < TimeSelector />
44+ < h3 className = 'mb-4 text-lg font-semibold text-gray-900' > 날짜</ h3 >
45+ < button
46+ onClick = { ( ) => setIsOpen ( true ) }
47+ className = 'w-full rounded-lg border border-gray-300 p-3 py-8 text-left text-black hover:bg-gray-50'
48+ >
49+ { selectedDate && selectedTime ? (
50+ < h2 >
51+ { selectedDate instanceof Date
52+ ? selectedDate . toLocaleDateString ( )
53+ : selectedDate }
54+ /{ selectedTime }
55+ </ h2 >
56+ ) : (
57+ '날짜선택하기'
58+ ) }
59+ </ button >
60+ </ div >
61+ < div className = 'flex flex-col items-center justify-center gap-20 px-10' >
3362 < ParticipantsSelector />
63+ < BookingModal />
64+
3465 < BookingButton onClick = { handleBooking } > 예약하기</ BookingButton >
3566 < TotalPriceDisplay />
3667 </ div >
3768 </ div >
69+ </ div >
3870
39- { /* 태블릿 */ }
40- < div className = 'relative hidden min-h-420 max-w-250 rounded-lg border border-gray-800 bg-white p-6 md:block lg:hidden' >
41- < div className = 'flex flex-col gap-20 px-18' >
42- < div className = 'mb-6' >
43- < PriceDisplay />
44- < h3 className = 'mb-4 text-lg font-semibold text-gray-900' > 날짜</ h3 >
45- < button
46- onClick = { ( ) => setOpenTablet ( true ) }
47- className = 'w-full rounded-lg border border-gray-300 p-3 py-8 text-left text-black hover:bg-gray-50'
48- >
49- { selectedDate && selectedTime ? (
50- < h2 >
51- { selectedDate instanceof Date
52- ? selectedDate . toLocaleDateString ( )
53- : selectedDate }
54- /{ selectedTime }
55- </ h2 >
56- ) : (
57- '날짜선택하기'
58- ) }
59- </ button >
71+ { /* 모바일 */ }
72+ < div className = 'fixed bottom-0 left-0 right-0 z-100 block border border-gray-200 bg-white p-6 md:hidden' >
73+ < div className = 'mb-6 flex items-start justify-between' >
74+ < div className = 'flex-1' >
75+ < div className = 'mb-1 text-xl font-bold text-gray-900' >
76+ ₩ 10,000{ ' ' }
77+ < span className = 'text-sm font-normal text-gray-600' >
78+ / 총 { participants } 인
79+ </ span >
6080 </ div >
61- < div className = 'flex flex-col items-center justify-center gap-20 px-10' >
62- < ParticipantsSelector />
63- < BookingModal />
64- { openTablet && (
65- < div className = 'absolute top-0 left-0 z-50 mt-2 w-full rounded border bg-white shadow-lg' >
66- < TabletPopup />
67- </ div >
81+ < div
82+ onClick = { ( ) => setIsOpen ( true ) }
83+ className = 'mb-4 text-sm text-gray-600'
84+ >
85+ { selectedDate && selectedTime ? (
86+ < h2 >
87+ { selectedDate instanceof Date
88+ ? selectedDate . toLocaleDateString ( )
89+ : selectedDate }
90+ /{ selectedTime }
91+ </ h2 >
92+ ) : (
93+ '날짜 선택하기'
6894 ) }
69- < BookingButton onClick = { handleBooking } > 예약하기</ BookingButton >
70- < TotalPriceDisplay />
71- </ div >
72- </ div >
73- </ div >
74-
75- { /* 모바일 */ }
76- < div className = 'fixed bottom-0 block w-full rounded-lg border border-gray-200 bg-white p-6 md:hidden' >
77- < div className = 'mb-6 flex items-start justify-between' >
78- < div className = 'flex-1' >
79- < div className = 'mb-1 text-xl font-bold text-gray-900' >
80- ₩ 10,000{ ' ' }
81- < span className = 'text-sm font-normal text-gray-600' >
82- / 총 { participants } 인
83- </ span >
84- </ div >
85- < div
86- onClick = { ( ) => setIsOpen ( true ) }
87- className = 'mb-4 text-sm text-gray-600'
88- >
89- { selectedDate && selectedTime ? (
90- < h2 >
91- { selectedDate instanceof Date
92- ? selectedDate . toLocaleDateString ( )
93- : selectedDate }
94- /{ selectedTime }
95- </ h2 >
96- ) : (
97- '날짜 선택하기'
98- ) }
99- </ div >
100- < BookingModal />
101- < BookingButton onClick = { handleBooking } > 예약하기</ BookingButton >
10295 </ div >
96+ < BookingModal />
97+ < Button variant = 'primary' className = 'py-20' onClick = { handleBooking } >
98+ 예약하기
99+ </ Button >
103100 </ div >
104101 </ div >
105102 </ div >
0 commit comments