Skip to content

Commit 308ef38

Browse files
authored
Merge pull request #251 from Room-In-Us/develop
[DEPLOY] 운영 서버 배포
2 parents 6bd47b9 + 804244c commit 308ef38

31 files changed

Lines changed: 1561 additions & 273 deletions

package-lock.json

Lines changed: 47 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"props-type": "^1.0.1",
2828
"rc-slider": "^11.1.8",
2929
"react": "^18.3.1",
30+
"react-awesome-reveal": "^4.3.1",
3031
"react-datepicker": "^8.4.0",
3132
"react-dom": "^18.3.1",
3233
"react-hook-form": "^7.54.2",

src/app/App.jsx

Lines changed: 15 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import DatePickerGlobalStyle from '../shared/styles/DatePickerGlobalStyle';
2626
import useAuthSession from '../shared/hooks/useAuthSession';
2727
import TermsPage from '../pages/TermsPage';
2828
import PrivacyPage from '../pages/PrivacyPage';
29+
import LandingPage from '../pages/LandingPage';
2930

3031
function App() {
3132
const setMapsLoaded = useSetRecoilState(mapsLoadedState);
@@ -40,8 +41,11 @@ function App() {
4041
<Routes>
4142
{/* 메인 레이아웃 적용 */}
4243
<Route element={<MainLayOut />}>
44+
{/* 랜딩 페이지 */}
45+
<Route path="/" element={<LandingPage />} />
46+
4347
{/* 메인 페이지 */}
44-
<Route path="/" element={<MainPage />} />
48+
<Route path="/home" element={<MainPage />} />
4549

4650
{/* 로그인 페이지 */}
4751
<Route path="/login" element={<LoginPage />} />
@@ -59,7 +63,7 @@ function App() {
5963
<Route path="/location" element={<LocationPage />} />
6064

6165
{/* 숙련도 페이지 */}
62-
<Route path="/level" element={<LevelPage/>} />
66+
<Route path="/level" element={<LevelPage />} />
6367

6468
{/* 장르 페이지 */}
6569
<Route path="/genre" element={<GenrePage />} />
@@ -73,67 +77,37 @@ function App() {
7377
{/* 마이 페이지 */}
7478
<Route
7579
path="/mypage"
76-
element={
77-
isLoggedIn === null
78-
? <div>로딩 중…</div>
79-
: isLoggedIn
80-
? <MyPage />
81-
: <NotFoundPage />
82-
}
80+
element={isLoggedIn === null ? <div>로딩 중…</div> : isLoggedIn ? <MyPage /> : <NotFoundPage />}
8381
/>
8482
<Route
8583
path="/mypage/preferences"
86-
element={
87-
isLoggedIn === null
88-
? <div>로딩 중…</div>
89-
: isLoggedIn
90-
? <PreferencesPage />
91-
: <NotFoundPage />
92-
}
84+
element={isLoggedIn === null ? <div>로딩 중…</div> : isLoggedIn ? <PreferencesPage /> : <NotFoundPage />}
9385
/>
9486
<Route
9587
path="/mypage/reservations"
96-
element={
97-
isLoggedIn === null
98-
? <div>로딩 중…</div>
99-
: isLoggedIn
100-
? <ReservationsPage />
101-
: <NotFoundPage />
102-
}
88+
element={isLoggedIn === null ? <div>로딩 중…</div> : isLoggedIn ? <ReservationsPage /> : <NotFoundPage />}
10389
/>
10490
<Route
10591
path="/mypage/favorites"
106-
element={
107-
isLoggedIn === null
108-
? <div>로딩 중…</div>
109-
: isLoggedIn
110-
? <FavoritesPage />
111-
: <NotFoundPage />
112-
}
92+
element={isLoggedIn === null ? <div>로딩 중…</div> : isLoggedIn ? <FavoritesPage /> : <NotFoundPage />}
11393
/>
11494
<Route
11595
path="/mypage/reviews"
116-
element={
117-
isLoggedIn === null
118-
? <div>로딩 중…</div>
119-
: isLoggedIn
120-
? <ReviewsPage />
121-
: <NotFoundPage />
122-
}
96+
element={isLoggedIn === null ? <div>로딩 중…</div> : isLoggedIn ? <ReviewsPage /> : <NotFoundPage />}
12397
/>
12498

12599
{/* 성향조사 페이지 */}
126100
<Route path="/survey" element={<SurveyPage />} />
127101

128102
{/* 전체 검색 페이지 */}
129-
<Route path = '/search' element={<SerachPage />} />
103+
<Route path="/search" element={<SerachPage />} />
130104

131105
{/* 이용약관 및 개인정보 처리방침 페이지 */}
132-
<Route path = '/terms' element={<TermsPage />} />
133-
<Route path = '/privacy' element={<PrivacyPage />} />
106+
<Route path="/terms" element={<TermsPage />} />
107+
<Route path="/privacy" element={<PrivacyPage />} />
134108

135109
{/* 404 Not Found 페이지 */}
136-
<Route path= "*" element={<NotFoundPage />} />
110+
<Route path="*" element={<NotFoundPage />} />
137111
</Route>
138112
</Routes>
139113

src/features/auth/ui/AuthCallback.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ const AuthCallback = () => {
99

1010
useEffect(() => {
1111
if (userCode) {
12-
localStorage.setItem("userCode", userCode);
12+
localStorage.setItem('userCode', userCode);
1313
// URL 정리
1414
window.history.replaceState({}, document.title, window.location.pathname);
1515
navigate('/signup');
1616
} else if (accessToken) {
17-
localStorage.setItem("accessToken", accessToken);
17+
localStorage.setItem('accessToken', accessToken);
1818
// URL 정리
1919
window.history.replaceState({}, document.title, window.location.pathname);
20-
navigate('/');
20+
navigate('/home');
2121
}
2222
}, [userCode, accessToken, navigate]);
2323

2424
return null;
2525
};
2626

27-
export default AuthCallback;
27+
export default AuthCallback;

src/features/auth/ui/CompleteSection.jsx

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
1-
import styled from "styled-components";
2-
import { useNavigate } from "react-router-dom";
3-
import SignupIllust from "../../../shared/assets/images/auth/signupIllust.png";
1+
import styled from 'styled-components';
2+
import { useNavigate } from 'react-router-dom';
3+
import SignupIllust from '../../../shared/assets/images/auth/signupIllust.png';
44

55
function CompleteSection() {
66
const navigate = useNavigate();
77

88
return (
99
<SectionWrapper>
1010
<ContentWrapper>
11-
<PageNumber>
12-
Hi! 👋
13-
</PageNumber>
11+
<PageNumber>Hi! 👋</PageNumber>
1412
<TextWrapper>
1513
<Title>회원가입이 완료되었습니다</Title>
1614
<Description>루미너스에 가입해주셔서 감사합니다!</Description>
1715
</TextWrapper>
1816
<ImageWrapper>
19-
<StyledImg src={SignupIllust}/>
17+
<StyledImg src={SignupIllust} />
2018
<ImageText>
21-
간단한 조사를 통해 방탈출 성향을 등록해주시면 <br/>
19+
간단한 조사를 통해 방탈출 성향을 등록해주시면 <br />
2220
루미너스가 좋은 서비스로 보답할게요!
2321
</ImageText>
2422
</ImageWrapper>
@@ -28,10 +26,10 @@ function CompleteSection() {
2826
<StyledButton onClick={() => navigate('/survey')}>
2927
<ButtonText>성향조사 하기</ButtonText>
3028
</StyledButton>
31-
<PassButton onClick={() => navigate('/')}>다음에 할게요</PassButton>
29+
<PassButton onClick={() => navigate('/home')}>다음에 할게요</PassButton>
3230
</ButtonWrapper>
3331
</SectionWrapper>
34-
)
32+
);
3533
}
3634

3735
export default CompleteSection;
@@ -47,7 +45,7 @@ const SectionWrapper = styled.div`
4745
flex-direction: column;
4846
justify-content: space-between;
4947
align-items: stretch;
50-
background-color: #FFF;
48+
background-color: #fff;
5149
z-index: 1;
5250
5351
@media (max-width: 768px) {
@@ -82,7 +80,7 @@ const TextWrapper = styled.div`
8280
`;
8381

8482
const Title = styled.div`
85-
color: var(--RIU_Primary-100, #718FF2);
83+
color: var(--RIU_Primary-100, #718ff2);
8684
font-family: 'Pretendard-Bold';
8785
font-size: 1.125em;
8886
line-height: 130%;
@@ -151,14 +149,14 @@ const StyledButton = styled.button`
151149
gap: 0.625em;
152150
align-self: stretch;
153151
border-radius: 2.5em;
154-
background: var(--RIU_Primary-Gradient-02, linear-gradient(282deg, #5B6ACC 0%, #718FF2 100%));
152+
background: var(--RIU_Primary-Gradient-02, linear-gradient(282deg, #5b6acc 0%, #718ff2 100%));
155153
cursor: pointer;
156154
position: relative;
157155
overflow: hidden;
158156
transition: all 0.2s ease-in-out;
159157
160158
&::before {
161-
content: "";
159+
content: '';
162160
position: absolute;
163161
top: 0;
164162
left: 0;
@@ -179,7 +177,7 @@ const StyledButton = styled.button`
179177
`;
180178

181179
const ButtonText = styled.div`
182-
color: #FFF;
180+
color: #fff;
183181
font-family: 'Pretendard-Bold';
184182
line-height: 130%;
185183
z-index: 1;
@@ -206,4 +204,4 @@ const PassButton = styled.div`
206204
@media (max-width: 768px) {
207205
font-size: 0.75em;
208206
}
209-
`;
207+
`;
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
import styled from 'styled-components';
2+
3+
function CarouselItem({ number, Img, title, description }) {
4+
return (
5+
<Card>
6+
<TitleWrapper>
7+
<Number>{number}</Number>
8+
<Title>{title}</Title>
9+
</TitleWrapper>
10+
<StyledImg src={Img} />
11+
<Desc>{description}</Desc>
12+
</Card>
13+
);
14+
}
15+
16+
export default CarouselItem;
17+
18+
// CSS
19+
const Card = styled.div`
20+
padding: 2.5em;
21+
border-radius: 1.25em;
22+
display: flex;
23+
flex-direction: column;
24+
justify-content: center;
25+
align-items: center;
26+
gap: 1.875em;
27+
background: var(--RIU_Monochrome-10, #f9f9fb);
28+
29+
@media (max-width: 768px) {
30+
height: 32em;
31+
}
32+
`;
33+
34+
const TitleWrapper = styled.div`
35+
display: flex;
36+
flex-direction: column;
37+
align-items: center;
38+
`;
39+
40+
const Number = styled.div`
41+
color: var(--RIU_Monochrome-200, #717486);
42+
font-family: 'Pretendard-Medium';
43+
font-size: 1.25em;
44+
line-height: 150%;
45+
46+
@media (max-width: 768px) {
47+
font-size: 1em;
48+
}
49+
`;
50+
51+
const Title = styled.div`
52+
color: var(--RIU_Primary-100, #718ff2);
53+
font-family: 'Pretendard-Bold';
54+
font-size: 1.875em;
55+
line-height: 150%;
56+
57+
@media (max-width: 768px) {
58+
font-size: 1.5em;
59+
}
60+
`;
61+
62+
const StyledImg = styled.img`
63+
width: 12.875em;
64+
height: 23.125em;
65+
66+
@media (max-width: 768px) {
67+
width: 7.795rem;
68+
height: 14rem;
69+
}
70+
`;
71+
72+
const Desc = styled.div`
73+
color: var(--RIU_Monochrome-200, #717486);
74+
font-family: 'Pretendard-Medium';
75+
font-size: 1.125em;
76+
line-height: 150%;
77+
white-space: pre-line;
78+
79+
@media (max-width: 768px) {
80+
font-size: 1em;
81+
}
82+
`;

0 commit comments

Comments
 (0)