Skip to content

Commit 6bd47b9

Browse files
authored
Merge pull request #244 from Room-In-Us/develop
Deploy: 운영 서버 배포
2 parents 7516595 + 3cf2bf0 commit 6bd47b9

10 files changed

Lines changed: 78 additions & 34 deletions

File tree

src/features/location/ui/GoogleMapComponent.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { GoogleMap, MarkerF, OverlayView } from '@react-google-maps/api';
55
import { googleMapStyles } from '../../../shared/styles/googleMapStyles.js';
66
import MarkerIcon from '../../../shared/assets/images/location/marker.png';
77
import AwardMarkerIcon from '../../../shared/assets/images/location/awardMarker.png';
8-
import useDevice from '../../../shared/hooks/useDevice.js';
8+
// import useDevice from '../../../shared/hooks/useDevice.js';
99

1010
function GoogleMapComponent() {
1111
// 중앙 좌표
@@ -16,10 +16,11 @@ function GoogleMapComponent() {
1616
const [zoomLevelState, setZoomLevel] = useRecoilState(zoomLevel);
1717

1818
// 지도 우측으로 이동
19-
const { isMobile } = useDevice();
19+
// const { isMobile } = useDevice();
2020
const adjustedCenter = {
2121
lat: centerState.lat,
22-
lng: centerState.lng - (isMobile ? 0 : 0.005),
22+
lng: centerState.lng,
23+
// lng: centerState.lng - (isMobile ? 0 : 0.005),
2324
};
2425

2526
// 상태 관리 (핀 클릭 시 매장 포커싱)

src/features/location/ui/LocationContentCard.jsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ function LocationContentCard({ data, headCount, type }) {
3030
isLiked,
3131
} = data;
3232

33+
// 로그인 상태 검증
34+
const isLoggedIn = useAuthSession();
35+
3336
// state 관리
3437
const [imageUrl, setImageUrl] = useState(img);
35-
const [isHeartActive, setIsHeartActive] = useState(isLiked);
38+
const [isHeartActive, setIsHeartActive] = useState(isLoggedIn ? isLiked : false);
3639
const [isLoginModalOpen, setIsLoginModalOpen] = useState(false);
3740

38-
// 로그인 상태 검증
39-
const isLoggedIn = useAuthSession();
40-
4141
// navigate
4242
const navigate = useNavigate();
4343

@@ -52,9 +52,8 @@ function LocationContentCard({ data, headCount, type }) {
5252

5353
// 좋아요 상태 관리
5454
useEffect(() => {
55-
setIsHeartActive(isLiked);
56-
console.log('data: ', data);
57-
}, [isLiked, data]);
55+
setIsHeartActive(isLoggedIn ? isLiked : false);
56+
}, [isLiked, isLoggedIn]);
5857

5958
const handleImageError = () => {
6059
setImageUrl(ThumbnailImg);

src/features/review/modal/reviewDataList.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,27 @@ export const FEEDBACK_TEXT = [
6161
"재미있어요",
6262
"훌륭해요!",
6363
"최고예요!"
64-
];
64+
];
65+
66+
export const FEEDBACK_TEXT_MAP = {
67+
난이도: [
68+
"너무 허무했어요","너무 쉬웠어요","손쉬운 편이에요", "쉬운 편이에요", "적당히 쉬웠어요","적당했어요",
69+
"약간 어려웠어요","어려운 편이에요","꽤 어려웠어요","극악 난이도예요!"
70+
],
71+
공포도: [
72+
"전혀 안 무서웠어요","무섭진 않았어요","약간 놀랐어요","조금 무서웠어요","가볍게 긴장돼요",
73+
"적당히 무서웠어요","심장이 살짝 쿵쿵!","꽤 무서웠어요","무서운데 재밌어요","너무 무서워서 도망칠 뻔!"
74+
],
75+
활동성: [
76+
"거의 안 움직였어요","움직임이 적었어요","가볍게 걸었어요","조금 움직였어요","무난한 활동이에요",
77+
"적당히 움직여요","꽤 활동적이에요","계속 움직였어요","체력 좀 필요해요","운동하러 온 줄 알았어요!"
78+
],
79+
스토리: [
80+
"내용이 거의 없어요","스토리 이해가 힘들었어요","설정만 있었어요","흐름이 아쉬웠어요","약간 연결이 부족해요",
81+
"무난한 스토리예요","스토리가 꽤 괜찮아요","몰입 잘 됐어요","이야기에 빠졌어요","영화처럼 완벽했어요!"
82+
],
83+
인테리어: [
84+
"너무 허전했어요","꾸밈이 부족했어요","공간이 단순했어요","무난한 구성이에요","디테일이 약했어요",
85+
"적당해요","제법 잘 꾸몄어요","분위기 좋았어요","디테일에 감탄했어요","현실보다 더 몰입돼요!"
86+
],
87+
};

src/features/review/ui/InputBox.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import styled from 'styled-components';
22
import StarRating from './StarRating.jsx';
3-
import { clothOptions } from '../modal/reviewDataList.js';
3+
import { clothOptions, FEEDBACK_TEXT_MAP } from '../modal/reviewDataList.js';
44
import UnselectedIcon from '../../../shared/assets/icons/common/filterIcon/unselected.svg';
55
import SelectedIcon from '../../../shared/assets/icons/common/filterIcon/selected.svg';
66

@@ -14,6 +14,7 @@ export default function InputBox({ rateValue, rateOnChange, label, placeholder,
1414
<StarRating
1515
value={rateValue}
1616
onChange={rateOnChange}
17+
feedbackTexts={FEEDBACK_TEXT_MAP[label]}
1718
/>
1819
<InputWrapper>
1920
<ThoughtInput placeholder={placeholder} value={value} onChange={onChange} />
@@ -75,7 +76,7 @@ const ThoughtInput = styled.textarea`
7576
font-size: 0.75em;
7677
font-family: Pretendard-Medium;
7778
background: none;
78-
color: var(--RIU_Monochrome-100, #818496);
79+
color: var(--RIU_Monochrome-500, #515467);
7980
8081
@media (max-width: 1024px) {
8182
}

src/features/review/ui/PlayerBoxSection.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const Box2 = styled.div`
7171

7272
const Box2Input = styled.input`
7373
width: 100%;
74-
color: var(--RIU_Monochrome-100, #818496);
74+
color: var(--RIU_Monochrome-500, #515467);
7575
font-family: Pretendard-Medium;
7676
font-size: 0.75em;
7777
outline: none;

src/features/review/ui/ReviewFirst.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ const ThoughtInput = styled.textarea`
237237
box-shadow: none;
238238
}
239239
240-
color: var(--RIU_Monochrome-100, #818496);
240+
color: var(--RIU_Monochrome-500, #515467);
241241
font-family: Pretendard-Medium;
242242
font-size: 0.75em;
243243
background: none;

src/features/review/ui/StarRating.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import EmptyStar from "../../../shared/assets/icons/reviewWrite/starEmpty.svg";
55
import HalfStar from '../../../shared/assets/icons/reviewWrite/starhalf.svg';
66
import { FEEDBACK_TEXT } from "../modal/reviewDataList";
77

8-
export default function StarRating({ value = 0, onChange }) {
8+
export default function StarRating({ value = 0, onChange, feedbackTexts }) {
99
const [hovered, setHovered] = useState(null);
1010

1111
const handleMouseEnter = (value) => setHovered(value);
@@ -34,7 +34,9 @@ export default function StarRating({ value = 0, onChange }) {
3434
});
3535
};
3636

37-
const feedbackText = rating > 0 ? FEEDBACK_TEXT[Math.round(rating * 2) - 1] : '\u00A0';
37+
const texts = feedbackTexts?.length ? feedbackTexts : FEEDBACK_TEXT;
38+
39+
const feedbackText = rating > 0 ? texts[Math.round(rating * 2) - 1] : '\u00A0';
3840

3941
return (
4042
<Container>

src/features/themeDetail/ui/ThemeOverviewCard.jsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ import PopUpModal from "../../../shared/components/PopUpModal";
1919
import { useNavigate } from "react-router-dom";
2020

2121
function ThemeOverviewCard({ themeData }) {
22+
// 로그인 상태 검증
23+
const isLoggedIn = useAuthSession();
24+
2225
// state 관리
2326
const [imageUrl, setImageUrl] = useState(themeData.img);
24-
const [isHeartActive, setIsHeartActive] = useState(themeData.isLiked);
27+
const [isHeartActive, setIsHeartActive] = useState(isLoggedIn ? themeData.isLiked : false);
2528
const [showTooltip, setShowTooltip] = useState(false);
2629
const setScheduleWriteModal = useSetRecoilState(scheduleModalState);
2730
const modalState = useRecoilValue(scheduleModalState);
2831
const [isLoginModalOpen, setIsLoginModalOpen] = useState(false);
29-
30-
// 로그인 상태 검증
31-
const isLoggedIn = useAuthSession();
3232

3333
const navigate = useNavigate();
3434

@@ -48,9 +48,8 @@ function ThemeOverviewCard({ themeData }) {
4848

4949
// 좋아요 상태 관리
5050
useEffect(() => {
51-
setIsHeartActive(themeData.isLiked);
52-
console.log('data: ', themeData);
53-
}, [themeData.isLiked, themeData]);
51+
setIsHeartActive(isLoggedIn ? themeData.isLiked : false);
52+
}, [themeData.isLiked, isLoggedIn]);
5453

5554
// 복사 기능
5655
const handleCopyLink = () => {

src/pages/myPage/ReservationsPage.jsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import styled from "styled-components";
22
import { useNavigate } from "react-router-dom";
3+
import { useEffect } from "react";
34
import LeftArrow from "../../shared/assets/icons/common/arrow/leftArrow.svg?react";
45
import useDevice from "../../shared/hooks/useDevice";
56
import CalendarSection from "../../features/mypage/ui/reservations/CalendarSection";
67
import ScheduleSection from "../../features/mypage/ui/reservations/ScheduleSection";
7-
import { useRecoilValue } from "recoil";
8+
import { useRecoilValue, useSetRecoilState } from "recoil";
89
import { reviewModalState, selectedThemeDataState } from "../../features/themeDetail/model/reviewAtom";
910
import ReviewWriteModal from "../../features/review/ui/ReviewWriteModal";
11+
import { scheduleModalState } from "../../features/schedule/modal/scheduleAtom";
1012

1113
function ReservationsPage() {
1214
const navigate = useNavigate();
@@ -15,6 +17,11 @@ function ReservationsPage() {
1517

1618
const isModalOpen = useRecoilValue(reviewModalState);
1719
const selectedThemeData = useRecoilValue(selectedThemeDataState);
20+
const setScheduleModalState = useSetRecoilState(scheduleModalState);
21+
22+
useEffect(() => {
23+
setScheduleModalState({ isOpen: false, mode: "add", reservation: null });
24+
}, [setScheduleModalState]);
1825

1926
return (
2027
<PageWrapper>
@@ -140,4 +147,4 @@ const ModalBackdrop = styled.div`
140147
display: flex;
141148
justify-content: center;
142149
align-items: center;
143-
`;
150+
`;

src/shared/components/ContentCard.jsx

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import useDevice from '../hooks/useDevice';
1414
import { postThemeLikeAPI, deleteThemeLikeAPI } from '../../features/like/api/themeLikeAPI';
1515
import PopUpModal from './PopUpModal';
1616
import useAuthSession from '../hooks/useAuthSession';
17+
import { scheduleModalState } from '../../features/schedule/modal/scheduleAtom';
18+
import { useSetRecoilState } from 'recoil';
1719

1820
function ContentCard({ data, headCount, type, onUnlike, backButtonText }) {
1921
const {
@@ -32,13 +34,14 @@ function ContentCard({ data, headCount, type, onUnlike, backButtonText }) {
3234
isLiked,
3335
} = data;
3436

37+
// 로그인 상태 검증
38+
const isLoggedIn = useAuthSession();
39+
3540
// state 관리
3641
const [imageUrl, setImageUrl] = useState(img);
37-
const [isHeartActive, setIsHeartActive] = useState(isLiked);
42+
const [isHeartActive, setIsHeartActive] = useState(isLoggedIn ? isLiked : false);
3843
const [isLoginModalOpen, setIsLoginModalOpen] = useState(false);
39-
40-
// 로그인 상태 검증
41-
const isLoggedIn = useAuthSession();
44+
const setScheduleModalState = useSetRecoilState(scheduleModalState);
4245

4346
// navigate
4447
const navigate = useNavigate();
@@ -63,12 +66,21 @@ function ContentCard({ data, headCount, type, onUnlike, backButtonText }) {
6366

6467
// 좋아요 상태 관리
6568
useEffect(() => {
66-
setIsHeartActive(isLiked);
67-
console.log('data: ', data);
68-
}, [isLiked, data]);
69+
setIsHeartActive(isLoggedIn ? isLiked : false);
70+
}, [isLiked, isLoggedIn]);
6971

7072
return (
71-
<ContentWrapper onClick={() => navigate(`/theme/${themeId}`, { state: { backButtonText } })}>
73+
<ContentWrapper
74+
onClick={() => {
75+
setScheduleModalState({
76+
isOpen: false,
77+
mode: 'add',
78+
reservation: null,
79+
});
80+
81+
navigate(`/theme/${themeId}`, { state: { backButtonText } });
82+
}}
83+
>
7284
{/* 이미지 영역 */}
7385
<ImageSection imgUrl={imageUrl}>
7486
<LocationTag>{locationName}</LocationTag>

0 commit comments

Comments
 (0)