Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Deploy]: 이용약관, 랜딩페이지 모집문구 변경 #104

Merged
merged 146 commits into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
d033423
fix: cookie test
kongnayeon Mar 2, 2024
535a440
dev deploy
kongnayeon Mar 7, 2024
b0e9d24
fix: 개발 환경 https 설정 제거
eugene028 Jun 23, 2024
5126284
chore: mkcert 패키지 제거
eugene028 Jun 23, 2024
ff0634d
chore: PR 템플릿 생성
eugene028 Jun 23, 2024
10476e3
Merge pull request #50 from GDSC-Hongik/feature/#48
eugene028 Jun 26, 2024
3791e97
[Chore] 패키지 매니저를 pnpm으로 변경해요. (#52)
eugene028 Jun 26, 2024
3f92ef6
fix : eslint,prettier 제대로 되게 수정
SeieunYoo Jun 28, 2024
8aa774c
Merge pull request #54 from GDSC-Hongik/fix/eslint-prettier
SeieunYoo Jun 29, 2024
f444394
[Chore] client 서비스에 wow-design 시스템을 적용해요. (#56)
eugene028 Jul 3, 2024
f251268
feat : 디스코드 튜토리얼 UI 1차 반영
SeieunYoo Jul 4, 2024
d2b29bd
feat : 가이드까지 UI 완성
SeieunYoo Jul 4, 2024
4ded610
feat : width 에도 반영
SeieunYoo Jul 4, 2024
9eb9557
fix : spaceKet 로 타입 수정
SeieunYoo Jul 4, 2024
34ad422
feat : spacing 토큰 변경
SeieunYoo Jul 10, 2024
60ccbf8
feat : ㄹ리뷰 반영
SeieunYoo Jul 10, 2024
f4bebc6
feat : 디스코드 api 연결
SeieunYoo Jul 10, 2024
6714a7c
feat : Image 컴포넌트 타입 수정
SeieunYoo Jul 12, 2024
8c0d322
fix: space 토큰 수정
SeieunYoo Jul 12, 2024
a46eeee
Merge pull request #58 from GDSC-Hongik/feature/#55
SeieunYoo Jul 12, 2024
40c5516
[Feature] github 로그인 페이지를 2차 MVP 페이지에 맞게 수정해요. (#62)
eugene028 Jul 13, 2024
f37fd9a
Merge branch 'dev' of https://github.com/GDSC-Hongik/gdsc-client into…
SeieunYoo Jul 14, 2024
4ca5f47
refactor : 리팩토링 및 변수명 변경
SeieunYoo Jul 14, 2024
9102657
fix: 하드코딩된 토큰 환경변수에 저장
SeieunYoo Jul 14, 2024
7ced34e
Create CODEOWNERS
SeieunYoo Jul 14, 2024
aa3420f
[Feature] 대시보드 2차 MVP DTO에 맞게 뷰를 수정해요. (#57)
eugene028 Jul 15, 2024
dcab5f1
[Feature] 기본 회원 정보를 받을 수 있는 Signup 페이지를 2차 MVP에 맞게 수정해요. (#60)
eugene028 Jul 15, 2024
53a6d28
Merge pull request #69 from GDSC-Hongik/feature/code-owner
SeieunYoo Jul 15, 2024
e4f4c22
refactor : query 관련 훅으로 리팩토링, Space 컴포넌트 수정
SeieunYoo Jul 19, 2024
1a7f658
fix: getValues 로 수정
SeieunYoo Jul 19, 2024
d4364ec
refactor: react-hook-form 의 pattern 사용해서 유효성 검증
SeieunYoo Jul 20, 2024
2be0e63
Merge branch 'dev' of https://github.com/GDSC-Hongik/gdsc-client into…
SeieunYoo Jul 20, 2024
37329ca
feat : 라우팅 반영
SeieunYoo Jul 20, 2024
11c282a
style : width 100% 수정
SeieunYoo Jul 20, 2024
8763acd
[Feature] 정회원 지원하기 액션시트를 생성하고, API를 연결해요. (#63)
eugene028 Jul 20, 2024
60f5a82
[Feature] Bevy 가입 인증 절차를 생성해요. (#70)
eugene028 Jul 20, 2024
f4d5aae
Merge pull request #68 from GDSC-Hongik/feature/discord-api
SeieunYoo Jul 20, 2024
305ee71
[Feature] 홍익대학교 Gmail을 통해 재학생 인증 기능을 만들어요. (#67)
eugene028 Jul 25, 2024
2ec33a7
feat: 회비 납부 플로우 추가
hamo-o Jun 23, 2024
abb0c47
feat: 토스페이먼츠 결제하기 라우팅
hamo-o Jun 23, 2024
dc0a67b
feat: 토스페이먼츠 클라이언트키 임시등록
hamo-o Jun 24, 2024
398daa4
feat: 총 결제금액 표시
hamo-o Jun 24, 2024
93c7987
feat: 결제 성공 시 마이페이지로 리다이렉트
hamo-o Jun 24, 2024
44a3cf4
chore: 결제 위젯 연동에 필요한 패키지 설치
hamo-o Jun 24, 2024
b7359ae
fix: PENDING 상태일 때만 결제창 띄움
hamo-o Jun 24, 2024
cf3ec9e
fix: 총 결제 금액 임시 하드코딩
hamo-o Jun 24, 2024
72b3c48
feat: coupon API 추가
hamo-o Jun 26, 2024
4114488
design: 결제창 레이아웃 변경
hamo-o Jun 26, 2024
4a14aac
feat: 결제 성공 및 실패 화면, 라우팅
hamo-o Jul 3, 2024
2398bab
chore: wowds-ui 설치
hamo-o Jul 3, 2024
9b1ba60
feat: wowds로 마이그레이션
hamo-o Jul 3, 2024
e10336e
design: wowds UI 적용
hamo-o Jul 3, 2024
297ee97
fix: Box 테두리 색상 임시 변경
hamo-o Jul 7, 2024
ce2b7c7
feat: 결제정보 전달 API
hamo-o Jul 7, 2024
778bce7
feat: 유저정보 API 임시설정
hamo-o Jul 7, 2024
3eb65e4
feat: 쿠폰 타입 변경
hamo-o Jul 7, 2024
8dc797d
feat: 토스페이먼츠 최신 API 임시 구현 사항
hamo-o Jul 7, 2024
98cfb3d
fix: API post -> get
hamo-o Jul 7, 2024
c977955
chore: payments 라이브러리 업데이트
hamo-o Jul 7, 2024
49441e2
feat: 토스페이먼츠 위젯 라이브러리 업데이트에 의한 기능구현 변경
hamo-o Jul 7, 2024
0224595
feat: useProduct hook으로 결제 관리
hamo-o Jul 9, 2024
e189c5e
fix: 결제 실패 시 쿠폰 적용 페이지로 라우팅
hamo-o Jul 9, 2024
7d3461d
chore: react-secure-storage 설치
hamo-o Jul 9, 2024
516bde6
feat: ENV 추가
hamo-o Jul 9, 2024
1ede9d6
feat: 결제 정보 암호화, 로컬스토리지 저장
hamo-o Jul 9, 2024
1401a8e
fix: 할인금액이 있을 때만 노출
hamo-o Jul 9, 2024
1f65621
feat: 결제 실패 시 로컬스토리지 초기화
hamo-o Jul 9, 2024
7c098f5
fix: 스토리지 리턴타입 단언
hamo-o Jul 10, 2024
897be1b
fix: 토스페이먼츠 타입 any 허용
hamo-o Jul 10, 2024
f9d9fcc
refactor: 회비 납부 페이지 컴포넌트 분리
hamo-o Jul 11, 2024
03e4511
feat: 임시 주문과 결제 승인 API 구분하기
hamo-o Jul 11, 2024
eb251f8
fix: 토스페이먼츠 테스트를 위한 로직 수정
hamo-o Jul 12, 2024
c804bc2
feat: 주문완료 API 추가
hamo-o Jul 22, 2024
59eca0e
design: 회비 납부 UI 수정
hamo-o Jul 22, 2024
9900987
feat: 쿠폰 정보 추가
hamo-o Jul 22, 2024
953c30f
refactor: 라우팅 없이 결제 위젯 연결
hamo-o Jul 22, 2024
c244eae
fix: 결제 실패 시 라우팅 변경
hamo-o Jul 22, 2024
7528bb5
fix: 스토리지 관련 로직 삭제
hamo-o Jul 22, 2024
df087cf
fix: 스토리지 관련 로직 삭제
hamo-o Jul 22, 2024
411f852
refactor: useProduct 훅, 관련 로직 리렌더링 최소화 리팩토링
hamo-o Jul 22, 2024
9d358ad
fix: 스토리지 clear 로직 삭제
hamo-o Jul 22, 2024
a07e0b4
fix: 테스트용 API 제거
hamo-o Jul 22, 2024
9373a7a
chore: 주석 제거
hamo-o Jul 22, 2024
86c83a4
chore: console.log 삭제
hamo-o Jul 26, 2024
8b76b54
chore: wowds-ui 버전업
hamo-o Jul 26, 2024
a443476
refactor: 쿠폰 드롭다운
hamo-o Jul 26, 2024
8bed4b0
feat: 무료 주문 생성 API
hamo-o Jul 26, 2024
55edcfe
feat: 주문 생성 API mutation hook으로 변경, 총 가격에 따른 API 조건부 반환
hamo-o Jul 26, 2024
7b8f57e
feat: 주문 완료 API mutation hook으로 변경
hamo-o Jul 26, 2024
6db6ffd
Merge pull request #71 from GDSC-Hongik/feature/tosspayments
hamo-o Jul 28, 2024
615487c
fix : 빌드 에러 수정 , ci 작성
SeieunYoo Jul 28, 2024
332de39
fix : ci 수정
SeieunYoo Jul 28, 2024
e0f522b
fix :svg 속성, 필요없는 컴포넌트 삭제
SeieunYoo Jul 28, 2024
e478511
fix : 안쓰는 api 삭제
SeieunYoo Jul 28, 2024
fa091b5
Merge pull request #73 from GDSC-Hongik/fix/dev-build-error
SeieunYoo Jul 28, 2024
295840a
[Fix]: 디스코드 연동 마이너 이슈 수정 (#75)
eugene028 Jul 31, 2024
3156fa8
[Fix]: Signup 페이지 마이너 UI 이슈 수정 (#74)
eugene028 Jul 31, 2024
41aedbf
feat: 푸터 텍스트 로고 추가
hamo-o Jul 31, 2024
168dd5f
feat: 푸터 UI
hamo-o Jul 31, 2024
17f8346
fix: 기존 홈 온보딩 이미지 삭제
hamo-o Jul 31, 2024
29b0ba1
Merge pull request #76 from GDSC-Hongik/feature/footer
hamo-o Jul 31, 2024
0199b94
feat : qa반영
SeieunYoo Jul 31, 2024
e5d2f81
Merge branch 'dev' of https://github.com/GDSC-Hongik/gdsc-client into…
SeieunYoo Jul 31, 2024
51b373b
fix : 불필요한 스타일 삭제, 텍필에 100% 추가
SeieunYoo Jul 31, 2024
4de4ff3
Merge pull request #77 from GDSC-Hongik/feat/discord-qa
SeieunYoo Aug 1, 2024
909c3c5
[Refactor] : 학교 이메일 인증 페이지 QA 개선 반영 (#80)
eugene028 Aug 3, 2024
d05a763
[Refactor] : Signup 페이지 QA 개선 반영 (#79)
eugene028 Aug 3, 2024
6956073
[Feature]: Sentry 세팅 (#81)
eugene028 Aug 5, 2024
6eb7525
fix: 논리 테스트 (#82)
eugene028 Aug 5, 2024
d0ec09d
[Chore]: Sentry 논리 되돌리기 (#83)
eugene028 Aug 5, 2024
b44b0ff
[Chore] : 빌드로그에서 vercel 환경변수 볼 수 있도록 하기 (#84)
eugene028 Aug 5, 2024
93e24cd
fix: 로딩 스피너 추가 및 기존 패키지 제거 (#89)
eugene028 Aug 7, 2024
0fd9a5d
[Refactor]: 마이너 UI 이슈 수정 (#90)
eugene028 Aug 7, 2024
fad9986
[Refactor] : 결제 페이지에 준회원이 아닌 경우 접근하지 못하도록 해요. (#88)
eugene028 Aug 7, 2024
46e38fe
[Refactor]: 학교 이메일 인증 정책을 변경해요 (#91)
eugene028 Aug 7, 2024
91c5e2b
[Fix] 토스페이먼츠 QA 개선 반영 (#93)
hamo-o Aug 7, 2024
ec0f37a
[Fix]: 서버 로그인 로직 변경에 따른 AccessToken, RefeshToken 쿠키 세팅 제거 및 landingSt…
eugene028 Aug 7, 2024
3dad6b1
[Fix] 토스페이먼츠 결제성공 페이지 가드 임시삭제 (#94)
hamo-o Aug 7, 2024
d1a5934
fix: 디스코드 관련 qa 반영
SeieunYoo Aug 9, 2024
b094392
feat : 인증을 완료한 경우에는 대시보드로 라우팅 하는 가드 설정
SeieunYoo Aug 9, 2024
165916c
[Fix]: 0807 QA 반영 (#95)
eugene028 Aug 9, 2024
ca30a99
Merge branch 'dev' into fix/seieun-qa
eugene028 Aug 9, 2024
206c1f6
fix: username 닉네임 잘못된 부분 수정
eugene028 Aug 9, 2024
47368bf
fix: 대기중 문구만 뜨는 것 고치기
eugene028 Aug 9, 2024
473037f
fix: console log 삭제
SeieunYoo Aug 10, 2024
c35a8c5
fix: 합류 확인 여부 리팩토링
eugene028 Aug 11, 2024
5b7d0aa
fix: 로그인 코드 변경
eugene028 Aug 11, 2024
99d182b
Merge branch 'fix/seieun-qa' of https://github.com/GDSC-Hongik/gdsc-c…
eugene028 Aug 11, 2024
1cc4856
fix:joinServer 안내문구
eugene028 Aug 11, 2024
63a2e1c
Merge branch 'main' into dev
eugene028 Aug 11, 2024
f75f601
fix:빌드실패 고치기
eugene028 Aug 11, 2024
89722f7
Merge pull request #96 from GDSC-Hongik/fix/seieun-qa
SeieunYoo Aug 11, 2024
8e94e8f
fix:서버 status 변경사항 반영
eugene028 Aug 11, 2024
80b5775
Merge branch 'dev' of https://github.com/GDSC-Hongik/gdsc-client into…
eugene028 Aug 11, 2024
0f07894
fix: build 에러 해결
eugene028 Aug 11, 2024
a222441
fix: paymentStatus enum 변경
eugene028 Aug 11, 2024
bfcc866
[Fix] 토스페이먼츠 쿠폰 관련 QA 사항 반영 (#97)
hamo-o Aug 11, 2024
11c72e5
fix: 상용배포 마이너 UI 이슈
eugene028 Aug 11, 2024
bdd919b
Merge branch 'main' into dev
eugene028 Aug 11, 2024
3b59c91
fix: 결제완료 queryKey 취소
eugene028 Aug 11, 2024
166924b
Merge branch 'dev' of https://github.com/GDSC-Hongik/gdsc-client into…
eugene028 Aug 11, 2024
097e232
Merge branch 'main' into dev
eugene028 Aug 22, 2024
140dbf4
[Feature]: 에러핸들러 동작방식 수정, sentry 에러잡기 테스트 (#102)
eugene028 Aug 22, 2024
3116d07
[Feature]: react query를 이용한 에러 처리방식으로 수정 (#103)
eugene028 Aug 22, 2024
9c83fa9
fix: 빌드에러 처리
eugene028 Aug 22, 2024
c962b59
[Feature]: 2024-2 가입 랜딩페이지 수정 (#101)
eugene028 Aug 23, 2024
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
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,14 @@
"nanoid": "^5.0.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-error-boundary": "^4.0.13",
"react-hook-form": "^7.50.1",
"react-router-dom": "^6.22.1",
"react-toastify": "^10.0.4",
"wowds-icons": "^0.1.0",
"wowds-tokens": "^0.0.9",
"zustand": "^4.5.0",
"wowds-ui": "^0.1.9"
"wowds-ui": "^0.1.9",
"zustand": "^4.5.0"
},
"devDependencies": {
"@sentry/react": "^8.22.0",
Expand Down
12 changes: 12 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added public/notfound.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 28 additions & 23 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,14 @@ function App() {
word-break: keep-all;
`}>
GDSC는 Google Developers에서 제공하는 프로그램을 통해 운영되는 대학교
기반의 개발자 커뮤니티 그룹입니다. <br />
기반의 개발자 커뮤니티 그룹이에요.
<br />
개발자로서 성장하는 데 관심이 있는 학부생이라면 누구나 참여할 수
있습니다. <br />
있어요.
<br />
GDSC의 목표는 전 세계의 대학생 개발자들이 구글 관련 기술 혹은
프로그래밍 실력을 높이고 지역 사회와 협력하여 실제 문제를 해결하도록
성장하는 것입니다.
성장하는 것이에요.
</Text>
</Introduction>
<Space height={80} />
Expand All @@ -97,10 +99,12 @@ function App() {
word-break: keep-all;
`}>
GDSC Hongik Open Community는 학생 개발자를 위한 홍익대학교의 개발
커뮤니티입니다.
<br /> 초심자들이 개발에 관심을 가지고 입문할 수 있도록 기초 학술
프로그램을 운영하며, 다양한 이벤트와 컨텐츠를 통해 학회원들과 소통할 수
있는 네트워킹 플랫폼을 제공하고 있습니다.
커뮤니티예요.
<br />
“더 나은 환경을, 더 나은 학우에게” 제공하는 것을 목표로, 초심자들이
개발에 관심을 가지고 입문할 수 있도록 기초 학술 프로그램을 운영하며,
다양한 이벤트와 컨텐츠를 통해 학회원들과 소통할 수 있는 네트워킹
플랫폼을 제공하고 있어요.
</Text>
<Space height={80} />
<Text typo="h1" color="black">
Expand All @@ -114,9 +118,8 @@ function App() {
text-align: center;
word-break: keep-all;
`}>
GDSC의 목표는 전 세계의 대학생 개발자들이 구글 관련 기술 혹은 프로그래밍
실력을 높이고 지역 사회와 협력하여 실제 문제를 해결하도록 성장하는
것입니다.
이번 학기 GDSC Hongik은 변화와 발전에 초점을 두어, 현재에 안주하지 않고
변화를 통해 구성원이 함께 발전시켜나갈 수 있는 커뮤니티를 운영하려 해요.
</Text>
<Space height={24} />
<Flex direction="column" gap="md">
Expand All @@ -132,17 +135,14 @@ function App() {
text-align: center;
word-break: keep-all;
`}>
GDSC의 이러한 비전에 맞추어, GDSC Hongik은 초심자들이 개발에 관심을
가지고 입문할 수 있도록 기초 학술 프로그램을 운영하며, 다양한 이벤트와
콘텐츠를 통해 학회원들과 소통할 수 있는 네트워킹 플랫폼을 제공하고
있습니다.
초심자들을 위한 기초 학술 프로그램부터, 다양한 이벤트와 컨텐츠를 통해
학회원들과 소통할 수 있는 네트워킹 플랫폼을 제공할 예정이에요.
</Text>
<Space height={48} />
<Flex direction="column" gap="sm">
<InformationBox
title="모집 기간"
description="1차 지원 기간: 2월 27일 ~ 3월 1일"
description2="2차 지원 기간: 3월 4일 ~ 3월 8일"
description="8월 26일(월) ~ 8월 30일(금)"
/>
<InformationBox
title="지원 자격"
Expand All @@ -152,7 +152,6 @@ function App() {
<InformationBox
title="지원 시 유의사항"
description="GDSC 커뮤니티 가이드라인 및 오픈 커뮤니티 가이드라인을 준수해야 해요."
description2="또한, 학기 당 2만원의 회비가 있어요."
/>
</Flex>
<Space height={48} />
Expand All @@ -178,17 +177,23 @@ function App() {
<Flex direction="column" gap="sm">
<InformationBox
title="Q. 서류, 면접 전형이 있나요?"
description="A. 없습니다! 홍익대학교 학생이라면 누구나 본 사이트의 '가입하기' 를 통해 지원할 수 있어요."
description="A. 아니요. 본 서비스를 통해 가입하면 홍익대학교 학생 누구나 바로 커뮤니티에서 활동할 수 있어요."
/>
<InformationBox
title="Q. 저는 코딩을 하나도 모르는 새내기인데, 따라갈 수 있나요?"
description="A. 당연하죠!"
description2="기초 스터디는 개발에 처음 입문하는 사람들을 위해서 만들어진 커리큘럼으로 강의가 진행돼요. 학습자 분들이 차근차근 따라올 수 있게끔 주차별 미션과 담당 멘토를 통해 도와드릴 예정이니, 부담갖지 않으셔도 돼요!
스터디에 참여하지 못하더라도, 사람들과 네트워킹하며 친분을 쌓아가는 것도 언제든지 환영입니다!"
/>
<InformationBox
title="Q. 다른 동아리, 학회와 병행 가능한가요?"
description="A. 가능합니다!"
description2="GDSC Hongik은 멤버 분들이 각자의 일정과 시간에 맞춰서 편하게 활동하실있게, 모든 활동에 자율적으로 참여할 수 있는 환경을 제공하고 있어요."
description="A. 가능해요!"
description2="GDSC Hongik은 Open Community 체제로 운영되기에 모든 활동에 자율적으로 참여하실있어요. 어딘가에 너무 오랫동안, 깊게 소속되지 않고, 가볍게 개발을 배우며 다른 사람들과 교류하고 싶은 분들에게 좋은 곳이에요."
/>
<InformationBox
title="Q. 저는 코딩을 하나도 모르는 새내기인데, 따라갈 수 있나요?"
description="A. 당연하죠!"
description2="저희는 커뮤니티 멤버 개개인이 저마다 다른 목표와 속도를 가지고 있다는 점을 깊이 이해하고 있어요. 새내기와 입문자 분들이 개발자로서 함께 성장할 수 있도록 기초 커리큘럼과 다양한 학술 지원 프로그램을 운영하고 있으니, 너무 걱정하지 않으셔도 돼요."
title="Q. GDSC Hongik에 대해 궁금한 것이 있어요!"
description="A. 이번 학기부터는 채널톡이 아닌, GDSC Hongik 카카오톡 채널을 통해 문의할 수 있어요!"
description2="카카오톡 채널을 추가하면 더욱 간편하게 이용할 수 있고, 추후 안내 사항을 빠르게 전달 받을 수 있어요."
/>
</Flex>
<Space height={59} />
Expand Down
20 changes: 16 additions & 4 deletions src/components/ApiErrorBoundary.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
import { PropsWithChildren } from 'react';

import * as Sentry from '@sentry/react';
import { useQueryClient } from '@tanstack/react-query';
import { AxiosError } from 'axios';
import { redirect } from 'react-router-dom';
import { toast } from 'react-toastify';
import RoutePath from '@/routes/routePath';
import { ReactNode } from 'react';

type ErrorResponseType = {
errorCodeName: string;
errorMessage: string;
};

export default function ApiErrorBoundary({ children }: PropsWithChildren) {
export default function ApiErrorBoundary({
children
}: {
children: ReactNode;
}) {
const queryClient = useQueryClient();

queryClient.getQueryCache().config = {
Expand All @@ -24,7 +28,10 @@ export default function ApiErrorBoundary({ children }: PropsWithChildren) {

function handleError(axiosError: AxiosError) {
const errorResponse = axiosError.response?.data as ErrorResponseType;

if (errorResponse) {
// eslint-disable-next-line import/namespace
Sentry.captureException(errorResponse, {});
}
const message = errorResponse.errorMessage;

switch (axiosError.response?.status) {
Expand All @@ -38,6 +45,11 @@ export default function ApiErrorBoundary({ children }: PropsWithChildren) {
toast.error(message);
break;
}

if (errorResponse) {
// eslint-disable-next-line import/namespace
Sentry.captureException(errorResponse, {});
}
}

return <>{children}</>;
Expand Down
15 changes: 15 additions & 0 deletions src/components/common/AsyncBoundary.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { ErrorBoundary } from '@sentry/react';
import { Suspense, SuspenseProps } from 'react';
import LoadingSpinner from './LoadingSpinner';

type AsyncBoundaryProps = Omit<SuspenseProps, 'fallback'>;

const AsyncBoundary = ({ children, ...rest }: AsyncBoundaryProps) => {
return (
<ErrorBoundary {...rest}>
<Suspense fallback={<LoadingSpinner />}>{children}</Suspense>
</ErrorBoundary>
);
};

export default AsyncBoundary;
5 changes: 5 additions & 0 deletions src/components/layout/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ const Footer = () => {
GDSC Hongik 가이드라인{' '}
</Text>
</Link>
<Link to={'https://www.gdschongik.com/term-of-use'}>
<Text typo="label2" style={{ textDecoration: 'underline' }}>
와우온보딩 이용약관
</Text>
</Link>
</Flex>

<Flex direction="column" align="start">
Expand Down
73 changes: 73 additions & 0 deletions src/pages/NotFound.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { Flex, Space, Text } from '@/components/common/Wrapper';
import * as Sentry from '@sentry/react';
import GlobalSize from '@/constants/globalSize';
import { media } from '@/styles';
import styled from '@emotion/styled';
import { useNavigate } from 'react-router-dom';
import { color } from 'wowds-tokens';
import Button from 'wowds-ui/Button';

const NotFoundPage = () => {
const navigate = useNavigate();
if (process.env.NODE_ENV === 'production') {
// eslint-disable-next-line import/namespace
Sentry.captureMessage('404 Page Not Found', {
extra: {
pathname: location.pathname
}
});
}
return (
<NotfoundWrapper>
<Space height={100} />
<Flex gap="sm" direction="column">
<Img src={'/notfound.png'} width={300} height={50} />
<Text typo="h1">오류가 발생했어요.</Text>
<Text typo="body1">요청하신 페이지를 찾을 수 없어요.</Text>
</Flex>
<ButtonContainer>
<Button
style={{ maxWidth: '100%' }}
onClick={() => {
navigate('/');
}}>
메인 화면으로 돌아가기
</Button>
</ButtonContainer>
</NotfoundWrapper>
);
};

export default NotFoundPage;

const Img = styled.img`
object-fit: cover;
`;

const NotfoundWrapper = styled.div`
display: flex;
position: relative;
flex-direction: column;
justify-content: start;
align-items: center;
min-height: calc(100vh - ${GlobalSize.header});
width: ${GlobalSize.width};
margin: 0px -16px;
padding: 0px 16px;
padding-top: 40px;
padding-bottom: 28px;
background-color: ${color.backgroundAlternative};
${media.mobile} {
width: 100vw;
}
`;

const ButtonContainer = styled.div`
position: absolute;
bottom: 1.75rem;
padding: 1rem 0.75rem;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
`;
1 change: 1 addition & 0 deletions src/pages/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ export * from './redirect/StudentVerificationServerRedirect';
export * from './PaymentsCheckout';
export * from './PaymentsFail';
export * from './PaymentsSuccess';
export * from './NotFound';
8 changes: 5 additions & 3 deletions src/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import RoutePath from '@/routes/routePath';
import { RouterProvider, createBrowserRouter } from 'react-router-dom';
import Layout from '@/components/layout/Layout';
import AuthAccessGuard from '@/components/auth/guard/AuthAccessGuard';
import { Text } from '@/components/common/Wrapper';
import NotFoundPage from '@/pages/NotFound';
import {
AuthServerRedirectNavigate,
StudentVerificationServerRedirect,
Expand Down Expand Up @@ -148,8 +148,10 @@ const router = sentryCreateBrowserRouter([
path: RoutePath.PaymentsSuccess,
element: <PaymentsSuccess />
},
// Todo: 404 Not found page
{ path: '*', element: <Text>not found page</Text> }
{
path: '*',
element: <NotFoundPage />
}
]
}
]);
1 change: 0 additions & 1 deletion src/utils/sentry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ const setSentry = () => {
function initSentry() {
if (process.env.NODE_ENV === 'development') return;

console.log(`VERCEL ENV : ${process.env.VERCEL_ENV}`);
Sentry.init({
environment: process.env.VERCEL_ENV,
dsn: SENTRY_DSN_KEY,
Expand Down
27 changes: 27 additions & 0 deletions vite.config.ts.timestamp-1724312798440-8bfe4df2623d3.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// vite.config.ts
import { defineConfig } from "file:///Users/eugene/github/gdsc-client/node_modules/.pnpm/[email protected][email protected]/node_modules/vite/dist/node/index.js";
import react from "file:///Users/eugene/github/gdsc-client/node_modules/.pnpm/@[email protected][email protected]/node_modules/@vitejs/plugin-react-swc/index.mjs";
import tsconfigPaths from "file:///Users/eugene/github/gdsc-client/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/vite-tsconfig-paths/dist/index.mjs";
import { sentryVitePlugin } from "file:///Users/eugene/github/gdsc-client/node_modules/.pnpm/@[email protected]/node_modules/@sentry/vite-plugin/dist/esm/index.mjs";
var vite_config_default = defineConfig({
plugins: [
react(),
tsconfigPaths(),
sentryVitePlugin({
org: process.env.SENTRY_ORG_NAME,
project: process.env.SENTRY_PROJECT_NAME,
authToken: process.env.SENTRY_AUTH_TOKEN,
sourcemaps: {
assets: "./dist/**",
filesToDeleteAfterUpload: "**/*.map"
}
})
],
build: {
sourcemap: true
}
});
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvZXVnZW5lL2dpdGh1Yi9nZHNjLWNsaWVudFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL2V1Z2VuZS9naXRodWIvZ2RzYy1jbGllbnQvdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL2V1Z2VuZS9naXRodWIvZ2RzYy1jbGllbnQvdml0ZS5jb25maWcudHNcIjtpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJztcbmltcG9ydCByZWFjdCBmcm9tICdAdml0ZWpzL3BsdWdpbi1yZWFjdC1zd2MnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHMgZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5cbmltcG9ydCB7IHNlbnRyeVZpdGVQbHVnaW4gfSBmcm9tICdAc2VudHJ5L3ZpdGUtcGx1Z2luJztcblxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XG4gIHBsdWdpbnM6IFtcbiAgICByZWFjdCgpLFxuICAgIHRzY29uZmlnUGF0aHMoKSxcbiAgICBzZW50cnlWaXRlUGx1Z2luKHtcbiAgICAgIG9yZzogcHJvY2Vzcy5lbnYuU0VOVFJZX09SR19OQU1FLFxuICAgICAgcHJvamVjdDogcHJvY2Vzcy5lbnYuU0VOVFJZX1BST0pFQ1RfTkFNRSxcbiAgICAgIGF1dGhUb2tlbjogcHJvY2Vzcy5lbnYuU0VOVFJZX0FVVEhfVE9LRU4sXG4gICAgICBzb3VyY2VtYXBzOiB7XG4gICAgICAgIGFzc2V0czogJy4vZGlzdC8qKicsXG4gICAgICAgIGZpbGVzVG9EZWxldGVBZnRlclVwbG9hZDogJyoqLyoubWFwJ1xuICAgICAgfVxuICAgIH0pXG4gIF0sXG4gIGJ1aWxkOiB7XG4gICAgc291cmNlbWFwOiB0cnVlXG4gIH1cbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFrUixTQUFTLG9CQUFvQjtBQUMvUyxPQUFPLFdBQVc7QUFDbEIsT0FBTyxtQkFBbUI7QUFFMUIsU0FBUyx3QkFBd0I7QUFHakMsSUFBTyxzQkFBUSxhQUFhO0FBQUEsRUFDMUIsU0FBUztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sY0FBYztBQUFBLElBQ2QsaUJBQWlCO0FBQUEsTUFDZixLQUFLLFFBQVEsSUFBSTtBQUFBLE1BQ2pCLFNBQVMsUUFBUSxJQUFJO0FBQUEsTUFDckIsV0FBVyxRQUFRLElBQUk7QUFBQSxNQUN2QixZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUiwwQkFBMEI7QUFBQSxNQUM1QjtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNMLFdBQVc7QUFBQSxFQUNiO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
Loading