Skip to content

Commit 1c02813

Browse files
committed
feat: 스터디룸 사진 추가
1 parent 7724dee commit 1c02813

File tree

5 files changed

+44
-13
lines changed

5 files changed

+44
-13
lines changed

public/images/공용공간A.jpg

468 KB
Loading

public/images/공용공간B.jpg

618 KB
Loading

public/images/스터디룸B.jpg

382 KB
Loading

src/app/page.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,11 @@ const Card = ({ title, subtitle, href, qrHref, qr, user_seat, isPendingSeat, cla
194194
)
195195
}
196196
}
197+
198+
let seat_text
199+
if (qr && user_seat) {
200+
seat_text = <p className='absolute bottom-8 border-b border-solid border-swBlack font-semibold'>{user_seat}번 좌석 이용 중</p>
201+
}
197202
return (
198203
<div
199204
onClick={handleCardClick}
@@ -204,12 +209,12 @@ const Card = ({ title, subtitle, href, qrHref, qr, user_seat, isPendingSeat, cla
204209
>
205210
<h1 className='text-3xl font-bold'>{title}</h1>
206211
<p className='text-base text-gray-600'>{subtitle}</p>
207-
{qr && user_seat !== 0 && (
208-
<p className='absolute bottom-8 border-b border-solid border-swBlack font-semibold'>{user_seat}번 좌석 이용 중</p>
212+
{seat_text}
213+
{title === '이용 수칙' && (
214+
<div className='absolute right-5 top-5 flex h-12 w-12 items-center justify-center rounded-full border-2 border-swBlack group-hover:bg-swWhite'>
215+
<LucideIcon name='ArrowUpRight' size={26} />
216+
</div>
209217
)}
210-
<div className='absolute right-5 top-5 flex h-12 w-12 items-center justify-center rounded-full border-2 border-swBlack group-hover:bg-swWhite'>
211-
<LucideIcon name='ArrowUpRight' size={26} />
212-
</div>
213218
{btnContent}
214219
<Modal onConfirm={confirmHandler} />
215220
</div>

src/app/room/reserve/step1/page.tsx

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
'use client'
2+
import Image from 'next/image'
23
import { useRouter } from 'next/navigation'
34
import React, { ReactNode, useEffect, useState } from 'react'
45

6+
import SPACE_A from '@/public/images/공용공간A.jpg'
7+
import SPACE_B from '@/public/images/공용공간B.jpg'
8+
import STUDY_ROOM_B from '@/public/images/스터디룸B.jpg'
59
import { Divider } from '@/src/components/common/Dividers'
610
import { Button } from '@/src/components/ui/button'
711
import { ROUTES } from '@/src/lib/constants/route'
812
import useCalenderDropdown from '@/src/lib/hooks/useCalenderDropdown'
913
import useSelectDropdown from '@/src/lib/hooks/useSelectDropdown'
1014
import { cn } from '@/src/lib/utils/cn'
1115

12-
interface StudyRoomReservePageProps {}
13-
14-
const [START_TIME, END_TIME] = ['09:00', '01:00']
1516
const generateTimeIntervals = (startTime = START_TIME, endTime = END_TIME, intervalMinutes = 30) => {
1617
const times = []
1718
let [hour, minute] = startTime.split(':').map(Number)
@@ -31,8 +32,12 @@ const generateTimeIntervals = (startTime = START_TIME, endTime = END_TIME, inter
3132

3233
return times
3334
}
35+
const [START_TIME, END_TIME] = ['09:00', '01:00']
3436
const timeSelections = generateTimeIntervals(START_TIME, END_TIME)
3537

38+
const ROOMS = [STUDY_ROOM_B, SPACE_A, SPACE_B]
39+
interface StudyRoomReservePageProps {}
40+
3641
type reserveTime = {
3742
startTime: string | undefined
3843
endTime: string | undefined
@@ -42,10 +47,22 @@ const StudyRoomReservePage = ({}: StudyRoomReservePageProps): ReactNode => {
4247
const [isDone, setIsDone] = useState<boolean>(false) // Route Decider
4348

4449
// #1. Input Values
45-
const { value: room_number, SelectDropdown: SelectRoomDropdown } = useSelectDropdown({
50+
const { value: room_name, SelectDropdown: SelectRoomDropdown } = useSelectDropdown({
4651
placeHolder: '이용공간을 선택해주세요',
4752
candidates: ['스터리룸B', '공용공간A', '공용공간B'],
4853
})
54+
let room_number: number | undefined = undefined
55+
switch (room_name) {
56+
case '스터리룸B':
57+
room_number = 0
58+
break
59+
case '공용공간A':
60+
room_number = 1
61+
break
62+
case '공용공간B':
63+
room_number = 2
64+
break
65+
}
4966

5067
const { date, CalenderDropdown } = useCalenderDropdown({
5168
placeHolder: '예약 날짜를 선택해주세요',
@@ -57,12 +74,12 @@ const StudyRoomReservePage = ({}: StudyRoomReservePageProps): ReactNode => {
5774
// })
5875

5976
useEffect(() => {
60-
if (room_number && date) {
77+
if (room_name && date) {
6178
setIsDone(true)
6279
} else if (isDone) {
6380
setIsDone(false)
6481
}
65-
}, [room_number, date])
82+
}, [room_name, date])
6683

6784
// Functions
6885
const stepHandler = () => {
@@ -75,7 +92,11 @@ const StudyRoomReservePage = ({}: StudyRoomReservePageProps): ReactNode => {
7592
<p className='text-2xl font-bold'>1. 이용공간</p>
7693
<div className='flex h-fit w-full flex-col items-start justify-start gap-2'>
7794
<SelectRoomDropdown className='h-16 w-64 bg-swWhite px-3 py-1' />
78-
<div className='flex aspect-card w-full items-center justify-center rounded-md bg-swGray text-2xl font-bold'>스터디룸 사진</div>
95+
{!room_name ? (
96+
<div className='flex aspect-card w-full items-center justify-center rounded-md bg-swGray text-2xl font-bold'>스터디룸 사진</div>
97+
) : (
98+
<Image src={ROOMS[room_number as number]} alt='선택된 공간' />
99+
)}
79100
</div>
80101
</div>
81102
<Divider className='my-6 md:hidden' />
@@ -124,7 +145,12 @@ interface TimeSelectorProps {
124145
}
125146
const TimeSelector = ({ time, className }: TimeSelectorProps): ReactNode => {
126147
return (
127-
<p className={cn('cursor-pointer rounded-sm border border-solid border-swGrayDark bg-swWhite text-center text-sm hover:bg-swHoverGreenLight', className)}>
148+
<p
149+
className={cn(
150+
'cursor-pointer rounded-sm border border-solid border-swGrayDark bg-swWhite text-center text-sm hover:bg-swHoverGreenLight',
151+
className,
152+
)}
153+
>
128154
{time}
129155
</p>
130156
)

0 commit comments

Comments
 (0)