Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
243 commits
Select commit Hold shift + click to select a range
8de2d6d
WIP: 임시 커밋
theSnackOverflow Jul 10, 2025
f778fd1
feat:맛집-상세 골격 완성 #37
theSnackOverflow Jul 10, 2025
d048ac8
design:맛집-상세 CSS 수정 #37
theSnackOverflow Jul 10, 2025
0d3f89c
feat:맛집 리뷰 Card 컴포넌트 구현 #37
theSnackOverflow Jul 10, 2025
32f7407
맛집-상세 wip 90% #37
theSnackOverflow Jul 10, 2025
9d94478
feat:신고하기 모달창 구현 #37
theSnackOverflow Jul 10, 2025
0723976
design:리뷰신고 모달 CSS 조정 #37
theSnackOverflow Jul 10, 2025
77aee8a
Design:상단 헤더 이름 오타 전면 수정 #37
theSnackOverflow Jul 10, 2025
60d7a56
wip
theSnackOverflow Jul 10, 2025
c2bae96
refactor:라우팅-절대 경로로 수정 #37
theSnackOverflow Jul 11, 2025
7481129
feat:Review 컴포넌트 좋아요 및 좋아요취소 기능 추가 #37
theSnackOverflow Jul 11, 2025
bcf555c
refactor:sampleReviews 상수 파일 분리 #37
theSnackOverflow Jul 11, 2025
3dc8de6
refactor:mockData 상수 파일 분리 #37
theSnackOverflow Jul 11, 2025
cb31443
feat:후기 필터(추천순|최신순) 기능 구현#37
theSnackOverflow Jul 11, 2025
d1c06fc
docs:변수 및 함수 주석 설명 추가#37
theSnackOverflow Jul 11, 2025
d04d743
feat:맛집-지도 화면 구현(api 연동 시 수정 필요) #37
theSnackOverflow Jul 11, 2025
8feb337
fix:맛집상세-주소 표시 오타 및 css 개선 #37
theSnackOverflow Jul 11, 2025
db0e7c4
fix:맛집-지도 뒤로가기 경로 수정#37
theSnackOverflow Jul 11, 2025
84ec704
feat:next-setup #1
theSnackOverflow Jun 30, 2025
1e998fa
chore:package.json turbopack 제거 #2
theSnackOverflow Jun 30, 2025
37b9043
chore:eslintrc.json 설정 추가 #3
theSnackOverflow Jun 30, 2025
d36a21b
chore:.prettierrc.js 설정 추가 #4
theSnackOverflow Jun 30, 2025
b66493d
chore:.vscode/setting.json 파일 추가 및 자동 포멧팅 설정 #5
theSnackOverflow Jun 30, 2025
07c5730
Update README.md
theSnackOverflow Jul 2, 2025
e7322aa
chore: tailwind.config.js screen-mobile 화면크기 설정 #8
theSnackOverflow Jul 2, 2025
1b73071
style: layout.tsx에 mobile-screen view 적용 #9
theSnackOverflow Jul 2, 2025
4d88bcb
feat:src/app/head.tsx 작성 및 적용 #10
theSnackOverflow Jul 2, 2025
be65de1
design: favicon 및 metaData 수정 #11
theSnackOverflow Jul 2, 2025
c27d82c
feat: 공용컴포넌트 BottomNav 화면 구현 #12
theSnackOverflow Jul 2, 2025
789edd0
design: bottomNav h 조정 및 layout pb 조정 #13
theSnackOverflow Jul 2, 2025
305ce62
feat:BottomNav router 추가 #14
theSnackOverflow Jul 2, 2025
7598445
feat:공용 컴포넌트-Header 화면 구현
theSnackOverflow Jul 2, 2025
db44458
design: Header 스타일 조정 #15
theSnackOverflow Jul 2, 2025
60c071a
fix: layout 구조 개선 및 BottomNav 위치 문제 트러블슈팅
theSnackOverflow Jul 2, 2025
25eb817
feat/mypage 화면 구현 #16
theSnackOverflow Jul 2, 2025
9878987
design: layout.tsx 전체 화면 paddingBottom 조정
theSnackOverflow Jul 2, 2025
a4eca93
design: header safe area(아이폰 상단 노치) 관련 클래스 제거
theSnackOverflow Jul 2, 2025
be45704
design: header className props 추가 #16
theSnackOverflow Jul 2, 2025
5d3cb79
feat:mypage Header Border-b 제거 및 route 추가
theSnackOverflow Jul 2, 2025
56679ee
design:Header hover:bg 제거
theSnackOverflow Jul 2, 2025
05ed9ec
feat:profileEdit 화면 구현
theSnackOverflow Jul 3, 2025
5fe3c16
feat:마이페이지-기본상태입력화면 구현 #17
theSnackOverflow Jul 3, 2025
0448f6d
rename: userInfoSetup -> userInfoEdit으로 이름 변경
theSnackOverflow Jul 3, 2025
fe1fd58
feat:기본정보입력 화면 구현 #18
theSnackOverflow Jul 3, 2025
b308459
rename:mypage 관련 디렉토리 camelCase -> kebab-case로 수정 및 router 경로 변경
theSnackOverflow Jul 3, 2025
19eb890
wip feat/user-info-setup/gender 임시 저장
theSnackOverflow Jul 3, 2025
2fae87d
refactor:ClienteLayout.tsx 생성 및 layout.tsx 리팩토링 #18
theSnackOverflow Jul 3, 2025
bde97c3
feat:기본상태입력-성별 화면 구현 9
theSnackOverflow Jul 3, 2025
3689b06
design:마이페이지/기본상태입력 하단 Nav 제거
theSnackOverflow Jul 3, 2025
6aca229
design:기본상태입력-성별 버튼 hover 및 active 효과 추가
theSnackOverflow Jul 3, 2025
b931b09
feat: 기본상태입력-운동상태 화면 구현
theSnackOverflow Jul 3, 2025
430eb4c
/mypage/user-info-setup/exercise -> /mypage/user-info-setup/state 로 변경
theSnackOverflow Jul 3, 2025
1d646c8
feat:기본상태입력-선호음식 화면 구현
theSnackOverflow Jul 3, 2025
bb21a82
기본정보입력-체질 화면 구현
theSnackOverflow Jul 3, 2025
afdfdcd
design:기본정보입력-알러지 하단 Nav 제거
theSnackOverflow Jul 3, 2025
11ef84b
feat:ProgressBar 공용 컴포넌트 UI 구현 #20
theSnackOverflow Jul 3, 2025
3fd4d70
refactor:ProgressBar 재사용을 위한 Props 추가 및 로직 개선 #21
theSnackOverflow Jul 3, 2025
a2fb381
feat:AlertModal 공용컴포넌트 구현 및 Progressbar 기능 구현 완료 #22
theSnackOverflow Jul 3, 2025
fb871a2
refactor:AlertModal 재사용 위한 구조 리팩토링 완료 #23
theSnackOverflow Jul 3, 2025
953519d
fix:router.back() -> router.push(경로)로 모두 변경
theSnackOverflow Jul 3, 2025
e3c9175
feat: 인증(auth) 관련 페이지, 온보딩(onboarding) 관련 라우팅 구조 생성
IISweetHeartII Jul 4, 2025
bed8ccd
feat: 로그인 및 서비스 이용을 위한 모달 컴포넌트(LoginPromptModal, TermsOfServiceModal) 추가
IISweetHeartII Jul 4, 2025
9874936
feat: Button 및 Input 컴포넌트 추가
IISweetHeartII Jul 4, 2025
d33c283
feat: Zod를 사용한 로그인 및 회원가입 폼 검증 스키마 추가
IISweetHeartII Jul 4, 2025
3e7f30c
feat: 새로운 이미지 파일 추가
IISweetHeartII Jul 4, 2025
a6c80e1
feat: kakao.png 이미지 파일 추가
IISweetHeartII Jul 4, 2025
a9166fd
feat: 버튼의 색상 변경 및 leftIcon 기능 추가
IISweetHeartII Jul 4, 2025
7350184
feat: 로그인 스키마에 rememberMe 필드 추가
IISweetHeartII Jul 4, 2025
6cbead9
feat: 로그인 폼 기능 구현 및 유효성 검사 적용
IISweetHeartII Jul 4, 2025
6c6a419
feat: 로그인 기능, 디자인 구현 완료
IISweetHeartII Jul 4, 2025
47317bf
refactor:AlertModal과 ProgressBar 컴포넌트 의존 관계 분리 및 ModalWrapper 추가 구현 #24
theSnackOverflow Jul 4, 2025
3abb00a
refactor: /mypage 화면 리팩토링 #25
theSnackOverflow Jul 4, 2025
7e23134
design: /mypage menuList hover 효과 개선
theSnackOverflow Jul 4, 2025
79c0c33
design: BottomNav Home Icon 변경
theSnackOverflow Jul 4, 2025
b86c47a
refactor: ClientLayout noBottomNav에 추가 경로 작성
jeonbinggu Jul 4, 2025
66d46d5
Add to logo at MainPage
theSnackOverflow Jul 6, 2025
af1f8b1
design:AlertModal
theSnackOverflow Jul 6, 2025
1fb395b
designAlertModal에 버튼 1개일때 동작 추가
theSnackOverflow Jul 6, 2025
2a0d3b7
design:AlertModal 수정 완료
theSnackOverflow Jul 6, 2025
2fe0b03
design:state-illustration 추가
theSnackOverflow Jul 6, 2025
c229fe6
refactor/프로필 관리-button dark 모드 적용
theSnackOverflow Jul 6, 2025
cc05381
refactor:BottomNav 구조 개선
theSnackOverflow Jul 6, 2025
dd48270
desgin:BottomNav 다크모드 구현-추후 dark:Icons 이미지 필요
theSnackOverflow Jul 6, 2025
3f5e41b
design/mypage 다크 모드 구현
theSnackOverflow Jul 6, 2025
3e32da4
design/mypage 다크 모드 구현 마무리
theSnackOverflow Jul 6, 2025
1d93857
design:프로필 관리 다크모드 구현
theSnackOverflow Jul 6, 2025
b904c22
wip
theSnackOverflow Jul 6, 2025
d48b8f6
refactor:기본상태입력
theSnackOverflow Jul 6, 2025
8b02984
design:기본상태입력 항목들 여백 조정
theSnackOverflow Jul 6, 2025
a50555d
design:기본정보입력 하단 버튼 다크 모드 적용
theSnackOverflow Jul 6, 2025
48c684a
design:AlertModal 다크모드 구현
theSnackOverflow Jul 6, 2025
c69a71e
design:기본정보입력하기창 다크모드 구현
theSnackOverflow Jul 6, 2025
3d6777f
design:progressBar 다크 모드 구현
theSnackOverflow Jul 6, 2025
ff2884a
design:유저정보입력-성별 다크모드 구현
theSnackOverflow Jul 6, 2025
2f5a4bc
design:유저정보입력-운동상태 다크모드 구현
theSnackOverflow Jul 6, 2025
b91c1e6
design:유저정보입력-음식 다크모드 구현
theSnackOverflow Jul 6, 2025
55d4bb5
design:유저정보입력-체질 다크모드 구현
theSnackOverflow Jul 6, 2025
73c5482
design:유저정보입력-알레르기 다크모드 구현
theSnackOverflow Jul 6, 2025
35b48ee
feat: 전체 메뉴 페이지 구현 #15
Head-ddy Jul 7, 2025
be7012a
feat: /fullmenu 라우팅 추가 #15
Head-ddy Jul 7, 2025
2bad95b
chore: add image asset 'customselect.png' #15
Head-ddy Jul 7, 2025
83f0433
feat: SearchBar component 추가 #15
Head-ddy Jul 7, 2025
fc098a4
design:기본상태입력-운동상태 배경 일러스트 삭제
theSnackOverflow Jul 6, 2025
bef54b9
feat/mypage/FoodBox 컴포넌트 구햔
theSnackOverflow Jul 6, 2025
09f07df
rename:branch feat/RecoList{null => #17}
theSnackOverflow Jul 6, 2025
b61d99a
feat/FoodBox 공용 컴포넌트 제작
theSnackOverflow Jul 7, 2025
39a758d
feat/추천목록관리 UI 및 기능 구현 (추후 최적화 필요)
theSnackOverflow Jul 7, 2025
f7eb7cc
FoodBox에 imgUrl(fallback) Props 추가
theSnackOverflow Jul 7, 2025
d1ef64e
FoodBox imgUrl 개선
theSnackOverflow Jul 7, 2025
09bc20a
FoodBox imgUrl 개선
theSnackOverflow Jul 7, 2025
b5e2c7c
feat:FoodBox isToggled props 추가
theSnackOverflow Jul 7, 2025
13c7df5
refactor:추천목록리스트 상수 배열.ts 분리
theSnackOverflow Jul 7, 2025
0f7d3f2
feat:FBA 기능 구현
theSnackOverflow Jul 7, 2025
de8d872
refactor:추천목록맛집 상수배열 분리
theSnackOverflow Jul 7, 2025
866c335
feat: 식사 시간 질문 페이지 구현
jeonbinggu Jul 5, 2025
167715f
feat: 현재 상태 질문 페이지 구현
jeonbinggu Jul 5, 2025
014457e
feat: 식사 목적 질문 페이지 구현
jeonbinggu Jul 5, 2025
35af78a
feat: 식사 인원 질문 페이지 구현
jeonbinggu Jul 5, 2025
92ea9f9
feat: 식사 예산 질문 페이지 구현
jeonbinggu Jul 5, 2025
df775c5
feat: 중간 응답 페이지 구현
jeonbinggu Jul 5, 2025
c5f130a
refactor: nobottomnav 경로 추가
jeonbinggu Jul 7, 2025
ba6e6af
feat: mainpage/BottomNav 컴포넌트 구현
jeonbinggu Jul 7, 2025
f402ab3
refactor: 음식 응답 페이지 경로 이동 추가
jeonbinggu Jul 7, 2025
dcd22ff
refactor: BottomNav 컴포넌트 적용
jeonbinggu Jul 7, 2025
e4df4c6
refactor: BottomNav 컴포넌트 적용
jeonbinggu Jul 7, 2025
d64eed1
refactor: BottomNav 컴포넌트 적용
jeonbinggu Jul 7, 2025
1c78ba5
refactor: BottomNav 컴포넌트 적용
jeonbinggu Jul 7, 2025
7c908d4
refactor: BottomNav 컴포넌트 적용
jeonbinggu Jul 7, 2025
7c76dc0
design: 로그인 페이지 로고 이미지(오메추) 크기 조정 (width: 139, height: 92)
IISweetHeartII Jul 5, 2025
5ff1b0e
feat: 비밀번호 재설정 메일 발송 후 확인 페이지 추가
IISweetHeartII Jul 5, 2025
67a4a11
remove: FindPassword.tsx 폴더, 파일 제거
IISweetHeartII Jul 5, 2025
7e4c2fb
feat: 비밀번호 찾기 페이지 추가 및 관련 button, input 컴포넌트 수정정
IISweetHeartII Jul 5, 2025
90cf105
Fix: resolve merge conflict in SearchBar
theSnackOverflow Jul 11, 2025
69f618b
refactor:SearchBar.tsx 컴포넌트 분리
theSnackOverflow Jul 7, 2025
545212d
feat: Tag 공용 컴포넌트로 분리 #15
Head-ddy Jul 7, 2025
ac7243c
feat: 메뉴 필터 모달창 전체화면으로 생성 #15
Head-ddy Jul 7, 2025
46a27b2
feat: 전체 메뉴 검색기능 추가 및 태그 필터 기능 추가 #15
Head-ddy Jul 7, 2025
fe862a8
refactor: Tag 파일 공용 컴포넌트 폴더로 이동 #15
Head-ddy Jul 7, 2025
08b613e
feat: food-sprite 및 loading-bg 이미지 추가
IISweetHeartII Jul 8, 2025
77570f8
feat: MainLoading 컴포넌트 추가 및 페이지 로딩 구현
IISweetHeartII Jul 8, 2025
a55f77a
chore: Add Vercel deployment workflow
IISweetHeartII Jul 9, 2025
07b447b
fix: AlertModal 컴포넌트 수정에 따른 코드 정리 및 일관성 있는 스타일 적용
IISweetHeartII Jul 9, 2025
6f8c732
feat: FoodBox에 onClick props 추가 및 cursor-pointer 추가 #16
Head-ddy Jul 7, 2025
4fdf707
feat: FoodBox 클릭 시 메뉴 상세 페이지로 이동 기능 추가 #16
Head-ddy Jul 7, 2025
3eb0d97
design: 헤더 최소 높이 49px로 추가 #16
Head-ddy Jul 7, 2025
9926f05
feat: 메뉴 상세 정보 페이지 UI 구현 #16
Head-ddy Jul 7, 2025
3189d20
feat: 뒤로가기 경로 수정 및 레시피 보러가기 클릭 시 경로 파라미터 값 전달 #16
Head-ddy Jul 7, 2025
b614356
feat: 이미지 alt 속성에 음식 이름 동적으로 적용 #16
Head-ddy Jul 7, 2025
95da7a9
style: 코드 들여쓰기 및 공백 정리 #16
Head-ddy Jul 7, 2025
4437755
chore: 뒤로가기 버튼의 alt 텍스트 수정 #16
Head-ddy Jul 7, 2025
4e4667d
feat: 레시피 상세 페이지 UI 구현 #16
Head-ddy Jul 7, 2025
ed91146
feat: 검색 결과 없음 메시지에 isSearched 상태 적용 #16
Head-ddy Jul 9, 2025
9ef625e
chore: Noto Sans KR 폰트 추가 및 Tailwind 설정 업데이트
IISweetHeartII Jul 9, 2025
99301db
fix: Noto Sans KR 폰트 preload 설정을 false로 변경
IISweetHeartII Jul 9, 2025
a912873
WIP: 임시 커밋
theSnackOverflow Jul 10, 2025
6c42cd0
feat:searchbar 기능 완성
theSnackOverflow Jul 8, 2025
9ffbaa1
fix:검색바 중복 실행 버그 수정
theSnackOverflow Jul 8, 2025
a60d282
feat:검색바 진짜 거의 다 완성...
theSnackOverflow Jul 8, 2025
1af6ce8
feat:검색바 96% 완성 ㅠㅠ
theSnackOverflow Jul 8, 2025
b4db2c2
new branch feat/Terms#31
theSnackOverflow Jul 8, 2025
95cfa48
feat:서비스 이용약관 구현 시작
theSnackOverflow Jul 8, 2025
44ac961
feat:서비스 이용약관 구현 화면 완성
theSnackOverflow Jul 8, 2025
b22b588
feat:service.ts 샘플파일 작성
theSnackOverflow Jul 8, 2025
fbf752e
design:Layout.tsx 배경 및 텍스트 다크모드 속성 제거
theSnackOverflow Jul 8, 2025
0438024
feat:서비스 이용약관 완료
theSnackOverflow Jul 8, 2025
541ce4b
feat:약관/개인정보처리방안 화면 구현
theSnackOverflow Jul 8, 2025
c21c0a6
feat:약관/위치정보서비스 화면 구현
theSnackOverflow Jul 8, 2025
884b8e2
feat:terms/위치정보서비스 샘플파일 구현
theSnackOverflow Jul 8, 2025
2d4be69
feat:약관/위치기반서비스 구현 완료
theSnackOverflow Jul 8, 2025
9d9a3d5
design:공용 Header 요소 간격 조정
theSnackOverflow Jul 8, 2025
279325e
feat:약관/하단 fab 버튼 추가
theSnackOverflow Jul 8, 2025
70257c4
docs:서비스이용약관 작성 완료 #31
theSnackOverflow Jul 8, 2025
8e52823
refactor:서비스이용약관 로직 개선 #31
theSnackOverflow Jul 8, 2025
bb928cc
docs:개인정보처리방침 문서 작성 완료 #31
theSnackOverflow Jul 8, 2025
2504a89
docs:위치기반서비스이용약관 문서 작성 완료 #31
theSnackOverflow Jul 8, 2025
85cfdfa
chore:scrollbar-hide 클래스 추가를 위한 tailwindcss.config.js 수정#31
theSnackOverflow Jul 8, 2025
4875cc2
refactor:FBA 버튼 로직 변경 및 위치 조정#31
theSnackOverflow Jul 8, 2025
282ffb9
refactor:FBA 버튼 로직 변경 및 scrollbar-hide 적용#31
theSnackOverflow Jul 8, 2025
56686c2
refactor:개인정보처리방침 FBA 버튼 로직 변경 및 scrollbar-hide 적용#31
theSnackOverflow Jul 8, 2025
8c7919c
feat:이용약관 UI rI 구현#31
theSnackOverflow Jul 8, 2025
8f9c5f7
feat:설정 화면 구현 #35
theSnackOverflow Jul 8, 2025
b54a1eb
design:list margin, padding 속성 변경 #35
theSnackOverflow Jul 8, 2025
3e56c39
Feat:계정 관리 UI 구현 #35
theSnackOverflow Jul 8, 2025
8e3a203
feat:설정/계정관리/비밀번호변경 UI 구현 #35
theSnackOverflow Jul 9, 2025
3726f7b
docs:비밀번호 변경 페이지 주석 추가
theSnackOverflow Jul 9, 2025
a7aaaa2
feat:Toast-공용컴포넌트 구현 #35
theSnackOverflow Jul 9, 2025
152366d
design:Toast-공용 CSS 수정 및 주석 설명 추가 #35
theSnackOverflow Jul 9, 2025
065aca7
design:이용약관 FBA 위치 중앙으로 수정 #35
theSnackOverflow Jul 9, 2025
cae41a0
design:비밀번호 변경 input 눈 아이콘 임시 등록#35
theSnackOverflow Jul 9, 2025
4031ee4
design:하단메뉴바 이미지 크기 조정 #46
theSnackOverflow Jul 9, 2025
d5fc79f
design:오타 수정 {기본상태관리 -> 기본상태입력}#47
theSnackOverflow Jul 9, 2025
94d7a97
fix:/mypage 오류 해결#47
theSnackOverflow Jul 9, 2025
5011252
design:상단Header left_arrow img 변경 및 통일 #47
theSnackOverflow Jul 9, 2025
95b245a
design:맛집-상세 CSS 수정 #37
theSnackOverflow Jul 10, 2025
7b4e729
feat:맛집 리뷰 Card 컴포넌트 구현 #37
theSnackOverflow Jul 10, 2025
9f4f484
Merge branch 'develop' into feature/Restaurant-info-ui-#37
theSnackOverflow Jul 12, 2025
1fa9c42
맛집-상세 wip 90% #37
theSnackOverflow Jul 10, 2025
a96a7a9
feat:신고하기 모달창 구현 #37
theSnackOverflow Jul 10, 2025
ce9fd19
design:리뷰신고 모달 CSS 조정 #37
theSnackOverflow Jul 10, 2025
0ce0aa1
Design:상단 헤더 이름 오타 전면 수정 #37
theSnackOverflow Jul 10, 2025
d9c4722
wip
theSnackOverflow Jul 10, 2025
ade1317
refactor:라우팅-절대 경로로 수정 #37
theSnackOverflow Jul 11, 2025
b9c1acb
feat:Review 컴포넌트 좋아요 및 좋아요취소 기능 추가 #37
theSnackOverflow Jul 11, 2025
4c6f5cf
refactor:sampleReviews 상수 파일 분리 #37
theSnackOverflow Jul 11, 2025
19d30bf
refactor:mockData 상수 파일 분리 #37
theSnackOverflow Jul 11, 2025
877e05e
feat:후기 필터(추천순|최신순) 기능 구현#37
theSnackOverflow Jul 11, 2025
541d2ca
docs:변수 및 함수 주석 설명 추가#37
theSnackOverflow Jul 11, 2025
acb36bf
feat:맛집-지도 화면 구현(api 연동 시 수정 필요) #37
theSnackOverflow Jul 11, 2025
a6ee3e6
fix:맛집상세-주소 표시 오타 및 css 개선 #37
theSnackOverflow Jul 11, 2025
b94a213
fix:맛집-지도 뒤로가기 경로 수정#37
theSnackOverflow Jul 11, 2025
fabeb7f
Merge branch 'feature/Restaurant-info-ui-#37' of https://github.com/T…
theSnackOverflow Jul 12, 2025
27422a7
chore: update yarn.lock after install
theSnackOverflow Jul 12, 2025
4e6ba8e
Merge branch 'develop' of https://github.com/Team-Omechu/Omechu-web i…
theSnackOverflow Jul 12, 2025
6d36cf9
fix:build-error 수정 #37
theSnackOverflow Jul 12, 2025
71278bd
fix: map 페이지 prerender 오류 해결을 위한 클라이언트 컴포넌트 분리 #37
theSnackOverflow Jul 12, 2025
993114d
fix: map 페이지 prerender 오류 해결을 위한 클라이언트 컴포넌트 분리 #37
theSnackOverflow Jul 12, 2025
a73317b
fix: restaurant-detail 페이지 prerender 오류 해결을 위한 클라이언트 컴포넌트 분리 #37
theSnackOverflow Jul 12, 2025
25f6b52
refactor: RestaurantDetail 페이지 클라이언트 컴포넌트로 분리하여 빌드 오류 해결#37
theSnackOverflow Jul 12, 2025
0696640
fix:빌드 오류 해결ing#37
theSnackOverflow Jul 13, 2025
9f16d7b
fix:빌드 오류 해결을 위한 수정#37
theSnackOverflow Jul 13, 2025
44477ed
fix:wip#37
theSnackOverflow Jul 13, 2025
d59be75
Merge remote-tracking branch 'origin/develop' into feature/Restaurant…
theSnackOverflow Jul 13, 2025
2f39185
fix:wip2 #37
theSnackOverflow Jul 13, 2025
19e92a6
fix:빌드 오류 해결을 위해 루트디렉토리에 middleware.ts 추가 #37
theSnackOverflow Jul 13, 2025
894e7d6
fix:빌드 오류 해결을 위해 restaurnt-detail 수정 #37
theSnackOverflow Jul 13, 2025
e10806a
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
f307a2d
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
15403af
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
a147ccf
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
85fcf66
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
ae81ef2
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
4b8c5ba
fix:빌드 오류 해결을 위해 restaurnt-detail 주석 처리 #37
theSnackOverflow Jul 13, 2025
1a7c61d
fix:빌드 오류 해결을 위해 restaurnt-detail 주석 처리 #37
theSnackOverflow Jul 13, 2025
3c591de
fix:빌드 오류 해결을 위해 restaurnt-detail 주석 처리 #37
theSnackOverflow Jul 13, 2025
8a5ff90
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
27fd5c6
fix:빌드 오류 해결을 위해 restaurnt-detail/map 수정 #37
theSnackOverflow Jul 13, 2025
5a8d146
fix:빌드 오류 해결ing#37
theSnackOverflow Jul 13, 2025
7e851ff
fix:빌드 오류 해결ing#37
theSnackOverflow Jul 13, 2025
297320c
fix:빌드 오류 해결ing#37
theSnackOverflow Jul 13, 2025
503fd66
fix:빌드 오류 해결ing#37
theSnackOverflow Jul 13, 2025
5b031ff
fix:빌드 오류 해결ing#37
theSnackOverflow Jul 13, 2025
d494dd1
fix:빌드 오류 해결 완료! #37[A
theSnackOverflow Jul 13, 2025
f827ccc
fix: wip #37
theSnackOverflow Jul 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"git.ignoreLimitWarning": true
Comment thread
IISweetHeartII marked this conversation as resolved.
}
33 changes: 33 additions & 0 deletions omechu-app/middleware.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

// NOTE: middleware 함수는 모든 요청에 대해 실행되어 라우팅 또는 리디렉션 등을 처리할 수 있음
export function middleware(request: NextRequest) {
const { pathname, searchParams } = request.nextUrl;

// CASE 1: /restaurant-detail?id=123 형식으로 접근 시 → /restaurant-detail/123 으로 리디렉션
if (pathname === "/restaurant-detail" && searchParams.has("id")) {
const id = searchParams.get("id");
const url = request.nextUrl.clone();
url.pathname = `/restaurant-detail/${id}`; // 동적 세그먼트 경로로 변경
url.search = ""; // 기존 쿼리스트링 제거
return NextResponse.redirect(url);
}

// CASE 2: /restaurant-detail/map?id=123 형식으로 접근 시 → /restaurant-detail/map/123 으로 리디렉션
if (pathname === "/restaurant-detail/map" && searchParams.has("id")) {
const id = searchParams.get("id");
const url = request.nextUrl.clone();
url.pathname = `/restaurant-detail/map/${id}`; // 동적 세그먼트 경로로 변경
url.search = ""; // 기존 쿼리스트링 제거
return NextResponse.redirect(url);
}

// 기본적으로는 요청을 그대로 통과시킴
return NextResponse.next();
}

// NOTE: matcher를 설정하면 특정 경로에만 middleware를 적용 가능 (선택사항)
export const config = {
matcher: ["/restaurant-detail", "/restaurant-detail/map"],
};
Binary file added omechu-app/public/arrow_down.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/arrow_up.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/menu_dots_vertical.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/report.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant/avatar1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant/avatar2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant/avatar3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant_blank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant_location.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/restaurant_time_table.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/thumbs-up-fill.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added omechu-app/public/thumbs-up.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 20 additions & 3 deletions omechu-app/src/app/ClientLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,24 @@ export default function ClientLayout({
"/mypage/user-info-setup/condition",
"/mypage/user-info-setup/allergy",
"/mypage/recommended-list",
"/mainpage/question-answer/meal-time",
"/mainpage/question-answer/purpose",
"/mainpage/question-answer/state",
"/mainpage/question-answer/who",
"/mainpage/question-answer/budget",
"/mainpage/question-answer/middle-question",
"/mainpage/meal-answer",
"/mainpage/location-answer",
"/mypage/recommended-list",

// 마이페이지-이용약관
"/mypage/terms",
// 마이페이지-설정
"/mypage/settings",
"/mypage/settings/account-settings",
"/mypage/settings/account-settings/change-password",
// 마이페이지-이용약관
"/mypage/terms",
"/mypage/terms/service",
"/mypage/terms/personal-info",
"/mypage/terms/location-info",

// 로그인, 회원가입, 온보딩 페이지
"/auth/signin",
Expand All @@ -50,6 +59,14 @@ export default function ClientLayout({
"/onboarding/4",
"/onboarding/5",
"/onboarding/6",

// 마이페이지-이용약관
"/mypage/terms/service",
"/mypage/terms/personal-info",
"/mypage/terms/location-info",

//맛집-상세페이지
"/restaurant-detail",
];
const showBottomNav = !noBottomNavRoutes.includes(pathname);

Expand Down
14 changes: 7 additions & 7 deletions omechu-app/src/app/auth/signup/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export default function Signup() {
return (
<div className="flex flex-col items-center min-h-screen bg-[#F8D5FF] py-10 px-4">
<form onSubmit={handleSubmit(onSubmit)} className="w-full max-w-sm">
<h1 className="text-xl font-bold text-center mb-8 text-black">
<h1 className="mb-8 text-xl font-bold text-center text-black">
회원 정보를 입력해 주세요
</h1>

Expand Down Expand Up @@ -149,7 +149,7 @@ export default function Signup() {
onChange={handleAllAgreement}
className="peer relative appearance-none w-5 h-5 border-2 border-gray-300 rounded-full cursor-pointer checked:bg-[#00B2FF] checked:border-transparent focus:outline-none"
/>
<span className="absolute text-white transition-opacity opacity-0 pointer-events-none top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 peer-checked:opacity-100">
<span className="absolute text-white transition-opacity -translate-x-1/2 -translate-y-1/2 opacity-0 pointer-events-none top-1/2 left-1/2 peer-checked:opacity-100">
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-3.5 h-3.5"
Expand All @@ -168,7 +168,7 @@ export default function Signup() {
아래의 내용을 모두 확인하였으며 모두 동의합니다
</span>
</label>
<div className="pl-7 space-y-2">
<div className="space-y-2 pl-7">
<div className="flex items-center justify-between">
<label
htmlFor="termsService"
Expand All @@ -181,7 +181,7 @@ export default function Signup() {
{...register("termsService")}
className="peer relative appearance-none w-5 h-5 border-2 border-gray-300 rounded-full cursor-pointer checked:bg-[#00B2FF] checked:border-transparent focus:outline-none"
/>
<span className="absolute text-white transition-opacity opacity-0 pointer-events-none top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 peer-checked:opacity-100">
<span className="absolute text-white transition-opacity -translate-x-1/2 -translate-y-1/2 opacity-0 pointer-events-none top-1/2 left-1/2 peer-checked:opacity-100">
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-3.5 h-3.5"
Expand Down Expand Up @@ -224,7 +224,7 @@ export default function Signup() {
{...register("termsPrivacy")}
className="peer relative appearance-none w-5 h-5 border-2 border-gray-300 rounded-full cursor-pointer checked:bg-[#00B2FF] checked:border-transparent focus:outline-none"
/>
<span className="absolute text-white transition-opacity opacity-0 pointer-events-none top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 peer-checked:opacity-100">
<span className="absolute text-white transition-opacity -translate-x-1/2 -translate-y-1/2 opacity-0 pointer-events-none top-1/2 left-1/2 peer-checked:opacity-100">
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-3.5 h-3.5"
Expand Down Expand Up @@ -269,7 +269,7 @@ export default function Signup() {
{...register("termsLocation")}
className="peer relative appearance-none w-5 h-5 border-2 border-gray-300 rounded-full cursor-pointer checked:bg-[#00B2FF] checked:border-transparent focus:outline-none"
/>
<span className="absolute text-white transition-opacity opacity-0 pointer-events-none top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 peer-checked:opacity-100">
<span className="absolute text-white transition-opacity -translate-x-1/2 -translate-y-1/2 opacity-0 pointer-events-none top-1/2 left-1/2 peer-checked:opacity-100">
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-3.5 h-3.5"
Expand Down Expand Up @@ -313,7 +313,7 @@ export default function Signup() {
{...register("termsAge")}
className="peer relative appearance-none w-5 h-5 border-2 border-gray-300 rounded-full cursor-pointer checked:bg-[#00B2FF] checked:border-transparent focus:outline-none"
/>
<span className="absolute text-white transition-opacity opacity-0 pointer-events-none top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 peer-checked:opacity-100">
<span className="absolute text-white transition-opacity -translate-x-1/2 -translate-y-1/2 opacity-0 pointer-events-none top-1/2 left-1/2 peer-checked:opacity-100">
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-3.5 h-3.5"
Expand Down
38 changes: 38 additions & 0 deletions omechu-app/src/app/components/auth/TermsOfServiceModal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from "react";
import Image from "next/image";
import Button from "./Button";

type TermsOfServiceModalProps = {
title: string;
content: React.ReactNode;
onConfirm: () => void;
onClose: () => void;
};

const TermsOfServiceModal = ({
title,
content,
onConfirm,
onClose,
}: TermsOfServiceModalProps) => {
return (
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
<div className="bg-white w-[335px] rounded-2xl p-5 flex flex-col gap-4 shadow-lg">
<div className="flex items-center justify-between">
<h2 className="text-lg font-bold">{title}</h2>
<button onClick={onClose}>
<Image src="/x_icon.png" alt="close" width={20} height={20} />
</button>
</div>
<div className="h-64 p-3 overflow-y-auto text-sm text-gray-600 border rounded-md bg-gray-50">
{content}
</div>
<Button onClick={onConfirm} variant="red" size="medium">
확인
</Button>
</div>
</div>
);
};

export default TermsOfServiceModal;
2 changes: 1 addition & 1 deletion omechu-app/src/app/components/common/Bottom.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const navItems: {
},
{
title: "맛집",
routingUrl: "/",
routingUrl: "/restaurant",
imgSrc: "/restaurant.png",
imgAlt: "맛집",
},
Expand Down
79 changes: 79 additions & 0 deletions omechu-app/src/app/components/restaurant/ReportModal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import Image from "next/image";
import { useState } from "react";

type ReportModalProps = {
onClick: () => void;
onReport: () => void;
};

export default function ReportModal({ onClick, onReport }: ReportModalProps) {
const [selectedReason, setSelectedReason] = useState("");

const reasons = [
{ id: "abuse", label: "욕설, 비방" },
{ id: "ad", label: "광고, 홍보성 글" },
{ id: "false", label: "허위 사실" },
{ id: "offensive", label: "선정적 / 불쾌한 내용" },
{ id: "other", label: "기타" },
];

return (
<section className="relative px-7 py-10 flex flex-col items-center gap-5 w-80 h-fit bg-white border border-[#393939] rounded-2xl">
{/* 나가기 버튼 */}
<div className="absolute top-4 right-4">
<button onClick={onClick}>
<Image
src="/close_button.png"
alt="나가기 버튼"
width={20}
height={20}
/>
</button>
</div>

{/* 모달 제목 */}
<div className="mt-5 mb-2 text-2xl text-[#393939] font-semibold">
후기 신고하기
</div>

{/* 신고 사유 */}
<div className="w-full ">
<h1 className="mb-2">신고 사유를 선택해 주세요</h1>
<div className="flex flex-col items-start w-full gap-2 px-1">
{reasons.map(({ id, label }) => (
<label
key={id}
htmlFor={id}
className="flex items-center gap-2 text-sm text-[#626262]"
>
<input
id={id}
type="radio"
name="reportReason"
value={label}
checked={selectedReason === label}
onChange={() => setSelectedReason(label)}
className="accent-[#1F9BDA]"
/>
{label}
</label>
))}
</div>
</div>

{/* 신고 내용 */}
<textarea
className="w-full h-24 px-2.5 py-2 border border-[#ccc] rounded resize-none text-sm text-[#393939] focus:outline-none"
placeholder="신고 사유를 자세하게 설명해주세요. (선택)"
/>

{/* 신고 버튼 */}
<button
onClick={onReport}
className="w-36 h-10 rounded-3xl text-white bg-[#FB4746] hover:bg-[#e2403f] active:bg-[#c93938]"
>
<span>신고하기</span>
</button>
</section>
);
}
125 changes: 125 additions & 0 deletions omechu-app/src/app/components/restaurant/Review.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
import Image from "next/image";

type ReviewProps = {
id: number;
profileImgUrl: string;
userId: string;
createdDate: string;
votes: number;
rating: number;
content: string;
tags?: string[];
images?: string[];
onClick?: () => void;
onReport?: () => void;
onVote?: () => void;
isVoted: boolean;
isOptionOpen?: boolean;
};

export default function Review({
id,
profileImgUrl,
userId,
createdDate,
votes = 0,
rating,
content,
tags,
images,
onClick,
onReport,
onVote,
isVoted,
isOptionOpen = false,
}: ReviewProps) {
return (
<section
className="w-full h-fit p-4 flex flex-col gap-2 bg-white
border-[1px] border-[#393939] rounded-xl "
>
{/* 프로필사진, 닉네임, 작성일 | 추천 버튼, 설정버튼 */}
<div className="relative flex justify-between">
<div className="flex items-center gap-3">
<Image
src={profileImgUrl}
alt={profileImgUrl}
width={30}
height={30}
/>
<span className="text-base text-[#393939] font-semibold">
{userId}
</span>
<span className="mt-[1.2px] text-sm text-[#828282] font-normal">
{createdDate}
</span>
</div>
<div className="absolute flex items-center gap-1 mb-2 -top-1 -right-1">
<span className="mt-1 text-sm ">{votes}</span>
<button onClick={onVote} className="mb-1">
<Image
src={isVoted ? "/thumbs-up-fill.png" : "/thumbs-up.png"}
alt="리뷰 추천 버튼"
width={22}
height={22}
/>
</button>
<button onClick={onClick}>
<Image
src="/menu_dots_vertical.png"
alt="메뉴"
width={18}
height={18}
/>
</button>
</div>
{isOptionOpen && (
<div className="absolute p-2 bg-white border rounded shadow -right-1 top-6">
<button
onClick={onReport}
className="flex items-center justify-center w-full gap-2 text-left"
>
<Image
src="/report.png"
alt={"신고하기"}
width={13}
height={18}
/>
<span className="mt-1">신고하기</span>
</button>
</div>
)}
</div>
{/* 평점, 후기 */}
<div className="flex flex-col gap-1 mt-1 ml-2">
<span className="text-xl font-normal text-[#1F9BDA]">
{"★".repeat(rating) + "☆".repeat(5 - rating)}
</span>
<span className="text-xl font-normal text-[#828282]">{content}</span>
<div className="flex flex-shrink-0 gap-2 mt-1 overflow-x-scroll scrollbar-hide scroll-smooth max-h-52">
{images?.map((item, index) => (
<Image
key={`review-img-${index}`}
src={item}
alt={`후기 이미지 ${index + 1}`}
width={200}
height={200}
className="rounded-md shrink-0"
/>
))}
</div>
</div>
{/* 후기 관련 태그 */}
<div className="flex flex-wrap justify-start gap-1 px-1">
{tags?.map((item, tagIdx) => (
<div
key={`tag-${id}-${tagIdx}`}
className="px-3 pt-1 pb-0.5 bg-white border-[1px] w-fit rounded-3xl border-[#393939] text-sm font-nomal hover:scale-105 duration-300"
>
{item}
</div>
))}
</div>
</section>
);
}
Loading