Skip to content

Conversation

@wldnjs990
Copy link
Collaborator

@wldnjs990 wldnjs990 commented Feb 26, 2025

✅ 요약

🪄 변경사항

  • 편지 답장시에 api요청을 연결했습니다.
  • 랜덤편지에서 매칭된 편지는 다른 api를 사용해 location훅으로 분기처리 했습니다.
  • writeStore에 있는 request관련 전역변수 데이터들을 객체형태로 리팩토링 했습니다

🖼️ 결과 화면 (선택)

💬 리뷰어에게 전할 말 (선택)

  • 랜덤편지랑 글쓰기 페이지를 같이 다뤄야할 거 같아서 일단 둘 다 pr날립니다!!

@wldnjs990 wldnjs990 added the ✨ Feature 기능 개발 이슈 label Feb 26, 2025
@wldnjs990 wldnjs990 self-assigned this Feb 26, 2025
@wldnjs990 wldnjs990 linked an issue Feb 26, 2025 that may be closed by this pull request
1 task
@tifsy tifsy self-requested a review February 27, 2025 05:27
console.log('d');
setLetterRequest({
receiverId: prevLetter[0].memberId,
parentLetterId: Number(searchParams.get('letterId')),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

searchParams.get('letterId')가 useEffect 실행 시마다 호출되는 걸로 보이는데, 한 번만 호출하고 변수로 저장해 두는 건 어떨까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오오 한번 해보겠습니다!👍👍

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드를 살펴봤는데 다른 의존성들이 딱 한번만 실행되고 더 실행안되는 코드들이라 useEffect가 딱 한번만 발생할거 같아서 이대로 두겠습니다!!(변수로 저장하니깐 lint가 또 뭐라해요 ㅠ)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 네 좋습니다!

textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;
useEffect(() => {
if (prevLetter.length > 0) {
console.log('d');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요건 삭제 부탁드립니다!🗑️

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네넹~

fill={`${category === categoryName || hovered ? '#FAB546' : 'white'}`}
fill={`${letterRequest.category === categoryName || hovered ? '#FAB546' : 'white'}`}
/>
</svg>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

path 데이터가 너무 길어지면 가독성이 떨어지니 SVG 파일이나 별도의 상수로 저장하는 게 좋아 보입니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어라 이거 바꿨었는데 pull을 잘못받아서 사라졌나보네요... svgr로 다시 만들겠습니다!


const [send, setSend] = useState<boolean>(false);
const [step, setStep] = useState<Step>('edit');
// prevLetter를 받았을때, 데이터 중에 receiverId가 전역변수의 memberId와 일치하는지 판단해 일치하지 않으면 메인페이지로 리다이렉션 하는 로직 만들어야함(그런데 아직 prevLetter데이터에 receiverId값이 없음 진영님께 부탁해야함!)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사소한 거지만 해야할 작업들은 //TODO: 로 적어주시면 좋을 것 같습니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오홍 넵 알겠습니다!

@wldnjs990 wldnjs990 merged commit b8b7bef into develop Feb 27, 2025
@wldnjs990 wldnjs990 deleted the 29-feat-write branch February 27, 2025 05:56
nirii00 pushed a commit that referenced this pull request Feb 27, 2025
* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정
AAminha added a commit that referenced this pull request Mar 3, 2025
* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* feat: 로그인 기능 임시 구현
- API 완성 되지 않음 : 논의된 부분을 바탕으로 임시로 제작함(작동 안함)
- 토큰을 전달 받기 위해 권한 상태 페이지 추가(보여주기 위한 용도가 아니라 쿼리문으로 토큰 전달을 위한 목적)

* feat: logout API 추가

* test: 로그인 테스트용 임시 커밋

* refactor: API 변경 사항 수정 반영, 토큰관련 interceptor 문 수정
- API 수정 반영하여 오류 사항들 수정
- 기존 interceptor 문에 오류가 있어서 수정
- AuthCallback Page에서 회원정보 설정 및 우편번호 발급

* test: 탈퇴 처리 테스트

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* Fix: intercepter 오류 해결
- intercepter retry 코드 빠진 부분 수정
- header에 잘못 설정 하는 부분 수정

* feat: 마이페이지 로그아웃 적용
- 로그아웃 테스트를 위해 마이페이지에 로그아웃 기능을 먼저 구현했습니다!

* Update src/pages/Auth/index.tsx

refac: 코드 개선

Co-authored-by: Minha Ahn <[email protected]>

* refactor: 코드 리뷰 반영
- 로그인 타입 파일 만듦
- logout 중복 선언 정리
- myPage 탈퇴 추가, p 태그 -> 버튼
- useAuthState 상태 가져오는 코드 수정

* refactor: myPage 오타 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>
wldnjs990 added a commit that referenced this pull request Mar 4, 2025
* design: 모바일 뷰 기본 틀 설정 (#2)

* chore: mui icon 라이브러리 설치

* design: 최대 너비 600px 제한

* design: 모바일 viewport 문제 개션을 위한 훅 추가

* design: 마이페이지 퍼블리싱 (#8)

* design: 마이페이지 에셋 추가

* design: 마이페이지 퍼블리싱

* design: ConfirmModal 컴포넌트 구현 및 탈퇴 모달 적용

* design: 모달 배경 이미지 적용

* design: 모달 컴포넌트 버튼 비율 동일하도록 수정

* refactor: 중복되는 버튼 디자인 스타일 클래스로 분리

* design: 배경 오버레이 이미지 추가

* fix: useViewport 계산 상수 수정

* feat: 온도에 맞는 텍스트 보여주는 함수 추가

* refactor: hn 태그 적용

* refactor: Header 컴포넌트를 공통 레이아웃으로 분리

* refactor: 모달 오버레이 공통 컴포넌트로 분리

* design: 알림페이지 퍼블리싱 (#10)

* design: 알림 페이지 에셋 추가

* feat: 알림 아이콘 - 알림 페이지 라우팅 연결

* design: 경고 모달창 퍼블리싱

* design: 알림 페이지 퍼블리싱

* design: 페이지 상단 간격 수정

* refactor: 레이아웃 컴포넌트 구조 수정

* design: 편지작성 페이지 퍼블리싱 (#13)

* design:편지 작성 페이지 작업 시작

* design:폰트 css 추가

* design:편지 작성 페이지 작업중

* design:글 작성 페이지 관련 이미지

* design:애니메이션 요소, 테마 제외한 퍼블리싱 완료

* design:편지지 테마선택 퍼블리싱 완료

* refactor:타입명 파스칼 케이스로 변경 & 상수명 대문자로 변경 & 타입 export import문 제거 & 몇몇 코드 상수파일 통합 & 타입파일 types폴더로 이동

* refactor:코드리뷰 수정사항 적용

* design:편지작성 완료 애니메이션 구현

* design:고민편지 작성 결과에도 애니메이션 적용 & ResultLetter 컴포넌트 공용 컴포넌트로 이동

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* design: 온보딩 페이지 퍼블리싱 (#18)

* design: 온보딩 페이지 퍼블리싱

우편번호 페이지 퍼블리싱 완료
우편번호 애니메이션 구현 완료
애니메이션 페이지 퍼블리싱 완료
애니메이션 페이지 구현 중
관리자 편지는 컴포넌트 제작 후 라우팅 연결할 예정

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design: 온보딩 페이지 편지 애니메이션 구현

- 온보딩 페이지에서 편지 애니메이션 구현
- TODO: 모바일 뷰 확인
- TODO: 편지 상세 링크

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* refactor: pr 피드백 반영

- 이미지 에셋 정리
- animation 파일 분리
- css 충돌 해결
- spinner -> containerRef 오류 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>

* design: 홈 페이지 퍼블리싱  (#19)

* design: 홈 페이지 에셋 추가

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* refactor: package-json 삭제

* refactor: ModalOverlay 컴포넌트 새 속성에 맞춰 모달 정리

* fix: import 오류 해결

* refactor: SpecialLetterBanner 애니메이션 animation.css로 분리

* design: Home에서 grow 적용으로 불필요한 h-screen 제거

* rename: 에셋 파일명을 케밥 케이스로 변경

* remove: 필요없는 에셋 삭제

* fix: 이미지 경로 import 방식 수정

* refactor: 버튼 컴포넌트 반복 로직 개선

* style: HomeRight 레이아웃 수정

* refactor: max-w 값 수정 및 불필요한 삼항 연산자 제거

* rename: Navbar를 HomeHeader로 대체

* rename: 홈 페이지 배경 이미지 업데이트

* fix: 모바일 및 웹에서 레이아웃 오류 해결, 홈 페이지 구조 리팩토링

* design: 홈 페이지 왼쪽 배경 width 조정

* design: SpecialLetterBanner width 조정

* design: 게시판 이미지 버튼 width 조정

* fix: coflict 오류 해결

* design: 로그인 및 랜딩 페이지 퍼블리싱 (#22)

* design: 전체 배경 그라데이션 삽입

* design: 로그인 페이지 에셋 추가

* design: 로그인 페이지 퍼블리싱

* design: 로그인 페이지 에셋 변경 및 반영

* design: 랜딩페이지 퍼블리싱

* remove: 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 로그인 아이콘에 aria-label 추가

* style: 랜딩페이지 원 크기 수정

* design: 홈 페이지 공유 미리보기 퍼블리싱  (#25)

* fix: 홈 페이지 게시판 라우팅 오류 해결

* fix: 랜덤 응원 메시지 z-index 조정으로 클릭 안되는 오류 해결

* design: 홈 페이지 공유 미리보기 에셋 추가

* design: 홈 페이지 공유 미리보기 퍼블리싱

* fix: 랜덤 응원 메시지가 모달보다 위로 뜨는 오류 해결

* remove: landing blur 중복 에셋 삭제

* fix: landing blur 에셋 import 경로 수정

* design, feat, chore : 편지 작성 페이지 추가 퍼블리싱 + 기능구현 + API연결 + 관리자페이지 퍼블리싱 (#28)

* design : 카테고리 버튼 사이즈 full로 변경

* design : 옵션 슬라이드 바텀시트 애니메이션 구현(약간 미완)

* refactor:관리자 / 모바일용 레이아웃 분리

* design : 관리자 페이지 퍼블리싱

* design:관리자 페이지 퍼블리싱

* refactor : 폰트 선택 모달 아이콘 svgr 변경 + 목API 형식에 맞춰 타입 수정 + API 연결 작업 90% 완료

* feat:글작성 페이지 쿼리스트링으로 이전편지 가져오기 API연결

* feat:편지 상세 페이지 API 데이터바인딩 90%완료(유저 우편번호 데이터 필요)

* feat:편지삭제 api 생성

* feat:글작성, 상세 페이지 뒤로가기 버튼 + 상세페이지 글 삭제 버튼 추가

* refactor : ResultLetter 타입 변경

* feat:글 작성 페이지 네비게이션 가드 테스트

* fix:코드리뷰 수정사항 반영

* feat: 내 편지함 기능 구현 1차 (#30)

* feat: 내 편지함, 상세 기능 구현 1차
- 내 편지함 기능구현
  - 렌더링
  - 3의 배수가 아닌 경우 이미지 추가
  - 아무것도 없을 때 노트 추가
- 내 편지함 상세 기능 구현
  - 공유 작성 및 전송
  - 편지 리스트 렌더링
  - 상대방 차단하기
- TODO
  - [ ] tanstackQuery 적용
  - [ ] 무한 스크롤? 적용할지?
  - [ ] 상태관리 확인하기

* refactor: API 컨벤션 통일

- API 파일이름 수정
- api.ts 삭제

* refactor: merge 후 오류 해결

---------

Co-authored-by: nirii00 <[email protected]>

* design: 404 페이지 디자인 (#33)

- 404 페이지 퍼블리싱
- 홈으로 가는 버튼 추가

Co-authored-by: nirii00 <[email protected]>

* feat: 롤링페이퍼 기능 구현 (mock api) (#35)

* feat: Tanstack query를 이용한 데이터 가져오는 커스텀 훅 useFetchQuery 구현

* feat: NoticeRollingPaper에 데이터 패칭 적용
- NoticeRolling -> NoticeRollingPaper로 컴포넌트 명 수정

* feat: 홈 페이지에 공용 컴포넌트 적용

* rename: MessageDetailModal -> CommentDetailModal 컴포넌트 명 수정

* rename: Message -> Comment 컴포넌트 명 수정

* feat: 롤링페이퍼 조회 기능 구현

* refactor: 중복되는 배경 컴포넌트 적용 및 불필요한 에셋 제거

* refactor: 중복되는 메모 배경 컴포넌트 적용 및 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 중복되는 모달 배경 컴포넌트 적용 및 불필요한 에셋 제거

* style: 커스텀 훅 제거 및 queryClient 기본값 설정

* feat: 삭제 모달 추가 및 삭제 mock api 연결

* feat: 편지 추가 mock api 연결

* fix: 신고 ui 제거

* style: 사용하지 않는 코드 제거

* style: 엔드포인트 오타 수정

* style: 더미 제거

* feat: 오고 있는 편지 조회 기능 구현 (mock api) (#36)

* style: 홈 페이지 eslint 오류 해결

* remove: 사용하지 않는 파일 삭제

* feat: 오고 있는 편지 조회 mock api 연결

* feat: 오고 있는 편지 클릭 시 편지 상세 페이지로 이동

* feat: 편지 목록 높이 자동 조정 및 스크롤 기능 추가

* fix: 랜덤 응원 메시지 모달 위로 뜨는 오류 해결

* fix: 오고 있는 편지 클릭 시 편지 미리보기로 이동하는 라우팅 오류 해결

* feat: 오고 있는 편지 목록에서 시간이 다 된 항목을 자동으로 삭제하는 기능 추가

* refactor: 오고 있는 편지 파일 구조 수정

* style: 오고 있는 편지 함수 선언을 화살표 함수로 변환

* feat: 새로 도착한 편지 개수 계산 구현

* feat: 마이페이지 내 정보 조회 기능 구현 (mock api) (#39)

* feat: 마이페이지 내 정보 조회 기능 구현

* fix: merge conflict 해결

* fix: 온보딩 애니메이션 오류 해결 (#41)

- 온보딩 편지 애니메이션 모바일 오류 해결
- 온보딩 단계에 따른 상태관리
- 온보딩이 끝난 후 홈으로 이동

Co-authored-by: nirii00 <[email protected]>

* feat:관리자 페이지 1차 기능 구현 (#43)

* feat:관리자 페이지 신고기능 구현완료(페이지네이션 제외)

* feat:관리자 페이지 검열관리 필터링 기능 개발중(검열 단어 추가 구현중)

* feat:필터링 단어 추가기능 목api연결 완료(단어 삭제는 목api가 안만들어짐) + 차단 편지목록 퍼블리싱

* chore:badwords, filteredLetter 라우팅 분리 + 사이드바 버튼에 라우팅 연결

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 편지 게시글 공유 기능 구현 (mock api) (#53)

* feat: 공유 게시글 목록 조회 기능 구현

* feat: 공유 게시글 상세 조회 기능 구현

* feat: 게시글 공유 요청 수락/거절 기능 구현

* perf: NewLetterModal의 불필요한 api 호출 제거

* fix: HomeRight의 useEffect 의존성 배열에 fetchIncomingLetters 추가

* fix: 공유 편지 미리보기에서 텍스트와 버튼이 겹쳐보이는 오류 해결

* refactor: hasNewLetters 로컬 상태 제거 및 arrivedCount 전역 상태로 대체

* fix: 특정 모바일 크기에서 내 편지함이 가려져 잘 안 보이는 오류 해결

* fix: 특정 모바일 크기에서 게시판이 잘 안 보이는 오류 해결

* design: 홈 페이지 공유 요청 모달에 스크롤 기능 추가

* style: 불필요한 console.log 삭제

* refactor: 테스트용 코드 삭제

* refactor: 'Letter' 인터페이스 이름을 'ShareLetter'로 변경

* fix: selector로 필요한 값만 불러오도록 수정하여 불필요한 렌더링 방지

* feat: 로그인 기능구현 (#52)

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* feat: 로그인 기능 임시 구현
- API 완성 되지 않음 : 논의된 부분을 바탕으로 임시로 제작함(작동 안함)
- 토큰을 전달 받기 위해 권한 상태 페이지 추가(보여주기 위한 용도가 아니라 쿼리문으로 토큰 전달을 위한 목적)

* feat: logout API 추가

* test: 로그인 테스트용 임시 커밋

* refactor: API 변경 사항 수정 반영, 토큰관련 interceptor 문 수정
- API 수정 반영하여 오류 사항들 수정
- 기존 interceptor 문에 오류가 있어서 수정
- AuthCallback Page에서 회원정보 설정 및 우편번호 발급

* test: 탈퇴 처리 테스트

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* Fix: intercepter 오류 해결
- intercepter retry 코드 빠진 부분 수정
- header에 잘못 설정 하는 부분 수정

* feat: 마이페이지 로그아웃 적용
- 로그아웃 테스트를 위해 마이페이지에 로그아웃 기능을 먼저 구현했습니다!

* Update src/pages/Auth/index.tsx

refac: 코드 개선

Co-authored-by: Minha Ahn <[email protected]>

* refactor: 코드 리뷰 반영
- 로그인 타입 파일 만듦
- logout 중복 선언 정리
- myPage 탈퇴 추가, p 태그 -> 버튼
- useAuthState 상태 가져오는 코드 수정

* refactor: myPage 오타 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>

* FIx, Feat: 로그인 기능 버그 수정, 권한별 접근 페이지 기능 추가 (#56)

* Fix: reissue 요청 수정

* Fix: 무한 response intercept 수정
- 요청 queue 포함

* feat: 권한별 접근 페이지 기능 추가
- PrivateRoute 추가하여 로그인된 사용자만 접근 가능하도록 설정
- AuthCallbackPage 임의로 접근시 home, login redirection 추가
- 로그인된 사용자는 login 접근 불가
- TODO
  - [ ] : intercepters.response에서 reissue 실패하는 경우 기존 api 함수에 catch로 에러 전달이 안되는 것 같음(추가로 문제 상황을 확인)

---------

Co-authored-by: nirii00 <[email protected]>

* feat: deploy.yml 생성

- main branch 자동 배포를 위해 프로젝트 빌드 및 deploy.yml 파일 생성
  - secret key 등록
  - 캐시 값을 바탕으로 패키지 설치 확인
- strictMode 활성화

---------

Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Seungyeon Han (Tiffany) <[email protected]>
wldnjs990 added a commit that referenced this pull request Mar 4, 2025
* design: 모바일 뷰 기본 틀 설정 (#2)

* chore: mui icon 라이브러리 설치

* design: 최대 너비 600px 제한

* design: 모바일 viewport 문제 개션을 위한 훅 추가

* design: 마이페이지 퍼블리싱 (#8)

* design: 마이페이지 에셋 추가

* design: 마이페이지 퍼블리싱

* design: ConfirmModal 컴포넌트 구현 및 탈퇴 모달 적용

* design: 모달 배경 이미지 적용

* design: 모달 컴포넌트 버튼 비율 동일하도록 수정

* refactor: 중복되는 버튼 디자인 스타일 클래스로 분리

* design: 배경 오버레이 이미지 추가

* fix: useViewport 계산 상수 수정

* feat: 온도에 맞는 텍스트 보여주는 함수 추가

* refactor: hn 태그 적용

* refactor: Header 컴포넌트를 공통 레이아웃으로 분리

* refactor: 모달 오버레이 공통 컴포넌트로 분리

* design: 알림페이지 퍼블리싱 (#10)

* design: 알림 페이지 에셋 추가

* feat: 알림 아이콘 - 알림 페이지 라우팅 연결

* design: 경고 모달창 퍼블리싱

* design: 알림 페이지 퍼블리싱

* design: 페이지 상단 간격 수정

* refactor: 레이아웃 컴포넌트 구조 수정

* design: 편지작성 페이지 퍼블리싱 (#13)

* design:편지 작성 페이지 작업 시작

* design:폰트 css 추가

* design:편지 작성 페이지 작업중

* design:글 작성 페이지 관련 이미지

* design:애니메이션 요소, 테마 제외한 퍼블리싱 완료

* design:편지지 테마선택 퍼블리싱 완료

* refactor:타입명 파스칼 케이스로 변경 & 상수명 대문자로 변경 & 타입 export import문 제거 & 몇몇 코드 상수파일 통합 & 타입파일 types폴더로 이동

* refactor:코드리뷰 수정사항 적용

* design:편지작성 완료 애니메이션 구현

* design:고민편지 작성 결과에도 애니메이션 적용 & ResultLetter 컴포넌트 공용 컴포넌트로 이동

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* design: 온보딩 페이지 퍼블리싱 (#18)

* design: 온보딩 페이지 퍼블리싱

우편번호 페이지 퍼블리싱 완료
우편번호 애니메이션 구현 완료
애니메이션 페이지 퍼블리싱 완료
애니메이션 페이지 구현 중
관리자 편지는 컴포넌트 제작 후 라우팅 연결할 예정

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design: 온보딩 페이지 편지 애니메이션 구현

- 온보딩 페이지에서 편지 애니메이션 구현
- TODO: 모바일 뷰 확인
- TODO: 편지 상세 링크

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* refactor: pr 피드백 반영

- 이미지 에셋 정리
- animation 파일 분리
- css 충돌 해결
- spinner -> containerRef 오류 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>

* design: 홈 페이지 퍼블리싱  (#19)

* design: 홈 페이지 에셋 추가

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* refactor: package-json 삭제

* refactor: ModalOverlay 컴포넌트 새 속성에 맞춰 모달 정리

* fix: import 오류 해결

* refactor: SpecialLetterBanner 애니메이션 animation.css로 분리

* design: Home에서 grow 적용으로 불필요한 h-screen 제거

* rename: 에셋 파일명을 케밥 케이스로 변경

* remove: 필요없는 에셋 삭제

* fix: 이미지 경로 import 방식 수정

* refactor: 버튼 컴포넌트 반복 로직 개선

* style: HomeRight 레이아웃 수정

* refactor: max-w 값 수정 및 불필요한 삼항 연산자 제거

* rename: Navbar를 HomeHeader로 대체

* rename: 홈 페이지 배경 이미지 업데이트

* fix: 모바일 및 웹에서 레이아웃 오류 해결, 홈 페이지 구조 리팩토링

* design: 홈 페이지 왼쪽 배경 width 조정

* design: SpecialLetterBanner width 조정

* design: 게시판 이미지 버튼 width 조정

* fix: coflict 오류 해결

* design: 로그인 및 랜딩 페이지 퍼블리싱 (#22)

* design: 전체 배경 그라데이션 삽입

* design: 로그인 페이지 에셋 추가

* design: 로그인 페이지 퍼블리싱

* design: 로그인 페이지 에셋 변경 및 반영

* design: 랜딩페이지 퍼블리싱

* remove: 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 로그인 아이콘에 aria-label 추가

* style: 랜딩페이지 원 크기 수정

* design: 홈 페이지 공유 미리보기 퍼블리싱  (#25)

* fix: 홈 페이지 게시판 라우팅 오류 해결

* fix: 랜덤 응원 메시지 z-index 조정으로 클릭 안되는 오류 해결

* design: 홈 페이지 공유 미리보기 에셋 추가

* design: 홈 페이지 공유 미리보기 퍼블리싱

* fix: 랜덤 응원 메시지가 모달보다 위로 뜨는 오류 해결

* remove: landing blur 중복 에셋 삭제

* fix: landing blur 에셋 import 경로 수정

* design, feat, chore : 편지 작성 페이지 추가 퍼블리싱 + 기능구현 + API연결 + 관리자페이지 퍼블리싱 (#28)

* design : 카테고리 버튼 사이즈 full로 변경

* design : 옵션 슬라이드 바텀시트 애니메이션 구현(약간 미완)

* refactor:관리자 / 모바일용 레이아웃 분리

* design : 관리자 페이지 퍼블리싱

* design:관리자 페이지 퍼블리싱

* refactor : 폰트 선택 모달 아이콘 svgr 변경 + 목API 형식에 맞춰 타입 수정 + API 연결 작업 90% 완료

* feat:글작성 페이지 쿼리스트링으로 이전편지 가져오기 API연결

* feat:편지 상세 페이지 API 데이터바인딩 90%완료(유저 우편번호 데이터 필요)

* feat:편지삭제 api 생성

* feat:글작성, 상세 페이지 뒤로가기 버튼 + 상세페이지 글 삭제 버튼 추가

* refactor : ResultLetter 타입 변경

* feat:글 작성 페이지 네비게이션 가드 테스트

* fix:코드리뷰 수정사항 반영

* feat: 내 편지함 기능 구현 1차 (#30)

* feat: 내 편지함, 상세 기능 구현 1차
- 내 편지함 기능구현
  - 렌더링
  - 3의 배수가 아닌 경우 이미지 추가
  - 아무것도 없을 때 노트 추가
- 내 편지함 상세 기능 구현
  - 공유 작성 및 전송
  - 편지 리스트 렌더링
  - 상대방 차단하기
- TODO
  - [ ] tanstackQuery 적용
  - [ ] 무한 스크롤? 적용할지?
  - [ ] 상태관리 확인하기

* refactor: API 컨벤션 통일

- API 파일이름 수정
- api.ts 삭제

* refactor: merge 후 오류 해결

---------

Co-authored-by: nirii00 <[email protected]>

* design: 404 페이지 디자인 (#33)

- 404 페이지 퍼블리싱
- 홈으로 가는 버튼 추가

Co-authored-by: nirii00 <[email protected]>

* feat: 롤링페이퍼 기능 구현 (mock api) (#35)

* feat: Tanstack query를 이용한 데이터 가져오는 커스텀 훅 useFetchQuery 구현

* feat: NoticeRollingPaper에 데이터 패칭 적용
- NoticeRolling -> NoticeRollingPaper로 컴포넌트 명 수정

* feat: 홈 페이지에 공용 컴포넌트 적용

* rename: MessageDetailModal -> CommentDetailModal 컴포넌트 명 수정

* rename: Message -> Comment 컴포넌트 명 수정

* feat: 롤링페이퍼 조회 기능 구현

* refactor: 중복되는 배경 컴포넌트 적용 및 불필요한 에셋 제거

* refactor: 중복되는 메모 배경 컴포넌트 적용 및 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 중복되는 모달 배경 컴포넌트 적용 및 불필요한 에셋 제거

* style: 커스텀 훅 제거 및 queryClient 기본값 설정

* feat: 삭제 모달 추가 및 삭제 mock api 연결

* feat: 편지 추가 mock api 연결

* fix: 신고 ui 제거

* style: 사용하지 않는 코드 제거

* style: 엔드포인트 오타 수정

* style: 더미 제거

* feat: 오고 있는 편지 조회 기능 구현 (mock api) (#36)

* style: 홈 페이지 eslint 오류 해결

* remove: 사용하지 않는 파일 삭제

* feat: 오고 있는 편지 조회 mock api 연결

* feat: 오고 있는 편지 클릭 시 편지 상세 페이지로 이동

* feat: 편지 목록 높이 자동 조정 및 스크롤 기능 추가

* fix: 랜덤 응원 메시지 모달 위로 뜨는 오류 해결

* fix: 오고 있는 편지 클릭 시 편지 미리보기로 이동하는 라우팅 오류 해결

* feat: 오고 있는 편지 목록에서 시간이 다 된 항목을 자동으로 삭제하는 기능 추가

* refactor: 오고 있는 편지 파일 구조 수정

* style: 오고 있는 편지 함수 선언을 화살표 함수로 변환

* feat: 새로 도착한 편지 개수 계산 구현

* feat: 마이페이지 내 정보 조회 기능 구현 (mock api) (#39)

* feat: 마이페이지 내 정보 조회 기능 구현

* fix: merge conflict 해결

* fix: 온보딩 애니메이션 오류 해결 (#41)

- 온보딩 편지 애니메이션 모바일 오류 해결
- 온보딩 단계에 따른 상태관리
- 온보딩이 끝난 후 홈으로 이동

Co-authored-by: nirii00 <[email protected]>

* feat:관리자 페이지 1차 기능 구현 (#43)

* feat:관리자 페이지 신고기능 구현완료(페이지네이션 제외)

* feat:관리자 페이지 검열관리 필터링 기능 개발중(검열 단어 추가 구현중)

* feat:필터링 단어 추가기능 목api연결 완료(단어 삭제는 목api가 안만들어짐) + 차단 편지목록 퍼블리싱

* chore:badwords, filteredLetter 라우팅 분리 + 사이드바 버튼에 라우팅 연결

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 편지 게시글 공유 기능 구현 (mock api) (#53)

* feat: 공유 게시글 목록 조회 기능 구현

* feat: 공유 게시글 상세 조회 기능 구현

* feat: 게시글 공유 요청 수락/거절 기능 구현

* perf: NewLetterModal의 불필요한 api 호출 제거

* fix: HomeRight의 useEffect 의존성 배열에 fetchIncomingLetters 추가

* fix: 공유 편지 미리보기에서 텍스트와 버튼이 겹쳐보이는 오류 해결

* refactor: hasNewLetters 로컬 상태 제거 및 arrivedCount 전역 상태로 대체

* fix: 특정 모바일 크기에서 내 편지함이 가려져 잘 안 보이는 오류 해결

* fix: 특정 모바일 크기에서 게시판이 잘 안 보이는 오류 해결

* design: 홈 페이지 공유 요청 모달에 스크롤 기능 추가

* style: 불필요한 console.log 삭제

* refactor: 테스트용 코드 삭제

* refactor: 'Letter' 인터페이스 이름을 'ShareLetter'로 변경

* fix: selector로 필요한 값만 불러오도록 수정하여 불필요한 렌더링 방지

* feat: 로그인 기능구현 (#52)

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* feat: 로그인 기능 임시 구현
- API 완성 되지 않음 : 논의된 부분을 바탕으로 임시로 제작함(작동 안함)
- 토큰을 전달 받기 위해 권한 상태 페이지 추가(보여주기 위한 용도가 아니라 쿼리문으로 토큰 전달을 위한 목적)

* feat: logout API 추가

* test: 로그인 테스트용 임시 커밋

* refactor: API 변경 사항 수정 반영, 토큰관련 interceptor 문 수정
- API 수정 반영하여 오류 사항들 수정
- 기존 interceptor 문에 오류가 있어서 수정
- AuthCallback Page에서 회원정보 설정 및 우편번호 발급

* test: 탈퇴 처리 테스트

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* Fix: intercepter 오류 해결
- intercepter retry 코드 빠진 부분 수정
- header에 잘못 설정 하는 부분 수정

* feat: 마이페이지 로그아웃 적용
- 로그아웃 테스트를 위해 마이페이지에 로그아웃 기능을 먼저 구현했습니다!

* Update src/pages/Auth/index.tsx

refac: 코드 개선

Co-authored-by: Minha Ahn <[email protected]>

* refactor: 코드 리뷰 반영
- 로그인 타입 파일 만듦
- logout 중복 선언 정리
- myPage 탈퇴 추가, p 태그 -> 버튼
- useAuthState 상태 가져오는 코드 수정

* refactor: myPage 오타 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>

* FIx, Feat: 로그인 기능 버그 수정, 권한별 접근 페이지 기능 추가 (#56)

* Fix: reissue 요청 수정

* Fix: 무한 response intercept 수정
- 요청 queue 포함

* feat: 권한별 접근 페이지 기능 추가
- PrivateRoute 추가하여 로그인된 사용자만 접근 가능하도록 설정
- AuthCallbackPage 임의로 접근시 home, login redirection 추가
- 로그인된 사용자는 login 접근 불가
- TODO
  - [ ] : intercepters.response에서 reissue 실패하는 경우 기존 api 함수에 catch로 에러 전달이 안되는 것 같음(추가로 문제 상황을 확인)

---------

Co-authored-by: nirii00 <[email protected]>

* feat: deploy.yml 생성

- main branch 자동 배포를 위해 프로젝트 빌드 및 deploy.yml 파일 생성
  - secret key 등록
  - 캐시 값을 바탕으로 패키지 설치 확인
- strictMode 활성화

* fix: pnpm install 에러 수정

---------

Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Seungyeon Han (Tiffany) <[email protected]>
wldnjs990 added a commit that referenced this pull request Mar 4, 2025
* design: 모바일 뷰 기본 틀 설정 (#2)

* chore: mui icon 라이브러리 설치

* design: 최대 너비 600px 제한

* design: 모바일 viewport 문제 개션을 위한 훅 추가

* design: 마이페이지 퍼블리싱 (#8)

* design: 마이페이지 에셋 추가

* design: 마이페이지 퍼블리싱

* design: ConfirmModal 컴포넌트 구현 및 탈퇴 모달 적용

* design: 모달 배경 이미지 적용

* design: 모달 컴포넌트 버튼 비율 동일하도록 수정

* refactor: 중복되는 버튼 디자인 스타일 클래스로 분리

* design: 배경 오버레이 이미지 추가

* fix: useViewport 계산 상수 수정

* feat: 온도에 맞는 텍스트 보여주는 함수 추가

* refactor: hn 태그 적용

* refactor: Header 컴포넌트를 공통 레이아웃으로 분리

* refactor: 모달 오버레이 공통 컴포넌트로 분리

* design: 알림페이지 퍼블리싱 (#10)

* design: 알림 페이지 에셋 추가

* feat: 알림 아이콘 - 알림 페이지 라우팅 연결

* design: 경고 모달창 퍼블리싱

* design: 알림 페이지 퍼블리싱

* design: 페이지 상단 간격 수정

* refactor: 레이아웃 컴포넌트 구조 수정

* design: 편지작성 페이지 퍼블리싱 (#13)

* design:편지 작성 페이지 작업 시작

* design:폰트 css 추가

* design:편지 작성 페이지 작업중

* design:글 작성 페이지 관련 이미지

* design:애니메이션 요소, 테마 제외한 퍼블리싱 완료

* design:편지지 테마선택 퍼블리싱 완료

* refactor:타입명 파스칼 케이스로 변경 & 상수명 대문자로 변경 & 타입 export import문 제거 & 몇몇 코드 상수파일 통합 & 타입파일 types폴더로 이동

* refactor:코드리뷰 수정사항 적용

* design:편지작성 완료 애니메이션 구현

* design:고민편지 작성 결과에도 애니메이션 적용 & ResultLetter 컴포넌트 공용 컴포넌트로 이동

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* design: 온보딩 페이지 퍼블리싱 (#18)

* design: 온보딩 페이지 퍼블리싱

우편번호 페이지 퍼블리싱 완료
우편번호 애니메이션 구현 완료
애니메이션 페이지 퍼블리싱 완료
애니메이션 페이지 구현 중
관리자 편지는 컴포넌트 제작 후 라우팅 연결할 예정

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design: 온보딩 페이지 편지 애니메이션 구현

- 온보딩 페이지에서 편지 애니메이션 구현
- TODO: 모바일 뷰 확인
- TODO: 편지 상세 링크

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* refactor: pr 피드백 반영

- 이미지 에셋 정리
- animation 파일 분리
- css 충돌 해결
- spinner -> containerRef 오류 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>

* design: 홈 페이지 퍼블리싱  (#19)

* design: 홈 페이지 에셋 추가

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* refactor: package-json 삭제

* refactor: ModalOverlay 컴포넌트 새 속성에 맞춰 모달 정리

* fix: import 오류 해결

* refactor: SpecialLetterBanner 애니메이션 animation.css로 분리

* design: Home에서 grow 적용으로 불필요한 h-screen 제거

* rename: 에셋 파일명을 케밥 케이스로 변경

* remove: 필요없는 에셋 삭제

* fix: 이미지 경로 import 방식 수정

* refactor: 버튼 컴포넌트 반복 로직 개선

* style: HomeRight 레이아웃 수정

* refactor: max-w 값 수정 및 불필요한 삼항 연산자 제거

* rename: Navbar를 HomeHeader로 대체

* rename: 홈 페이지 배경 이미지 업데이트

* fix: 모바일 및 웹에서 레이아웃 오류 해결, 홈 페이지 구조 리팩토링

* design: 홈 페이지 왼쪽 배경 width 조정

* design: SpecialLetterBanner width 조정

* design: 게시판 이미지 버튼 width 조정

* fix: coflict 오류 해결

* design: 로그인 및 랜딩 페이지 퍼블리싱 (#22)

* design: 전체 배경 그라데이션 삽입

* design: 로그인 페이지 에셋 추가

* design: 로그인 페이지 퍼블리싱

* design: 로그인 페이지 에셋 변경 및 반영

* design: 랜딩페이지 퍼블리싱

* remove: 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 로그인 아이콘에 aria-label 추가

* style: 랜딩페이지 원 크기 수정

* design: 홈 페이지 공유 미리보기 퍼블리싱  (#25)

* fix: 홈 페이지 게시판 라우팅 오류 해결

* fix: 랜덤 응원 메시지 z-index 조정으로 클릭 안되는 오류 해결

* design: 홈 페이지 공유 미리보기 에셋 추가

* design: 홈 페이지 공유 미리보기 퍼블리싱

* fix: 랜덤 응원 메시지가 모달보다 위로 뜨는 오류 해결

* remove: landing blur 중복 에셋 삭제

* fix: landing blur 에셋 import 경로 수정

* design, feat, chore : 편지 작성 페이지 추가 퍼블리싱 + 기능구현 + API연결 + 관리자페이지 퍼블리싱 (#28)

* design : 카테고리 버튼 사이즈 full로 변경

* design : 옵션 슬라이드 바텀시트 애니메이션 구현(약간 미완)

* refactor:관리자 / 모바일용 레이아웃 분리

* design : 관리자 페이지 퍼블리싱

* design:관리자 페이지 퍼블리싱

* refactor : 폰트 선택 모달 아이콘 svgr 변경 + 목API 형식에 맞춰 타입 수정 + API 연결 작업 90% 완료

* feat:글작성 페이지 쿼리스트링으로 이전편지 가져오기 API연결

* feat:편지 상세 페이지 API 데이터바인딩 90%완료(유저 우편번호 데이터 필요)

* feat:편지삭제 api 생성

* feat:글작성, 상세 페이지 뒤로가기 버튼 + 상세페이지 글 삭제 버튼 추가

* refactor : ResultLetter 타입 변경

* feat:글 작성 페이지 네비게이션 가드 테스트

* fix:코드리뷰 수정사항 반영

* feat: 내 편지함 기능 구현 1차 (#30)

* feat: 내 편지함, 상세 기능 구현 1차
- 내 편지함 기능구현
  - 렌더링
  - 3의 배수가 아닌 경우 이미지 추가
  - 아무것도 없을 때 노트 추가
- 내 편지함 상세 기능 구현
  - 공유 작성 및 전송
  - 편지 리스트 렌더링
  - 상대방 차단하기
- TODO
  - [ ] tanstackQuery 적용
  - [ ] 무한 스크롤? 적용할지?
  - [ ] 상태관리 확인하기

* refactor: API 컨벤션 통일

- API 파일이름 수정
- api.ts 삭제

* refactor: merge 후 오류 해결

---------

Co-authored-by: nirii00 <[email protected]>

* design: 404 페이지 디자인 (#33)

- 404 페이지 퍼블리싱
- 홈으로 가는 버튼 추가

Co-authored-by: nirii00 <[email protected]>

* feat: 롤링페이퍼 기능 구현 (mock api) (#35)

* feat: Tanstack query를 이용한 데이터 가져오는 커스텀 훅 useFetchQuery 구현

* feat: NoticeRollingPaper에 데이터 패칭 적용
- NoticeRolling -> NoticeRollingPaper로 컴포넌트 명 수정

* feat: 홈 페이지에 공용 컴포넌트 적용

* rename: MessageDetailModal -> CommentDetailModal 컴포넌트 명 수정

* rename: Message -> Comment 컴포넌트 명 수정

* feat: 롤링페이퍼 조회 기능 구현

* refactor: 중복되는 배경 컴포넌트 적용 및 불필요한 에셋 제거

* refactor: 중복되는 메모 배경 컴포넌트 적용 및 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 중복되는 모달 배경 컴포넌트 적용 및 불필요한 에셋 제거

* style: 커스텀 훅 제거 및 queryClient 기본값 설정

* feat: 삭제 모달 추가 및 삭제 mock api 연결

* feat: 편지 추가 mock api 연결

* fix: 신고 ui 제거

* style: 사용하지 않는 코드 제거

* style: 엔드포인트 오타 수정

* style: 더미 제거

* feat: 오고 있는 편지 조회 기능 구현 (mock api) (#36)

* style: 홈 페이지 eslint 오류 해결

* remove: 사용하지 않는 파일 삭제

* feat: 오고 있는 편지 조회 mock api 연결

* feat: 오고 있는 편지 클릭 시 편지 상세 페이지로 이동

* feat: 편지 목록 높이 자동 조정 및 스크롤 기능 추가

* fix: 랜덤 응원 메시지 모달 위로 뜨는 오류 해결

* fix: 오고 있는 편지 클릭 시 편지 미리보기로 이동하는 라우팅 오류 해결

* feat: 오고 있는 편지 목록에서 시간이 다 된 항목을 자동으로 삭제하는 기능 추가

* refactor: 오고 있는 편지 파일 구조 수정

* style: 오고 있는 편지 함수 선언을 화살표 함수로 변환

* feat: 새로 도착한 편지 개수 계산 구현

* feat: 마이페이지 내 정보 조회 기능 구현 (mock api) (#39)

* feat: 마이페이지 내 정보 조회 기능 구현

* fix: merge conflict 해결

* fix: 온보딩 애니메이션 오류 해결 (#41)

- 온보딩 편지 애니메이션 모바일 오류 해결
- 온보딩 단계에 따른 상태관리
- 온보딩이 끝난 후 홈으로 이동

Co-authored-by: nirii00 <[email protected]>

* feat:관리자 페이지 1차 기능 구현 (#43)

* feat:관리자 페이지 신고기능 구현완료(페이지네이션 제외)

* feat:관리자 페이지 검열관리 필터링 기능 개발중(검열 단어 추가 구현중)

* feat:필터링 단어 추가기능 목api연결 완료(단어 삭제는 목api가 안만들어짐) + 차단 편지목록 퍼블리싱

* chore:badwords, filteredLetter 라우팅 분리 + 사이드바 버튼에 라우팅 연결

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 편지 게시글 공유 기능 구현 (mock api) (#53)

* feat: 공유 게시글 목록 조회 기능 구현

* feat: 공유 게시글 상세 조회 기능 구현

* feat: 게시글 공유 요청 수락/거절 기능 구현

* perf: NewLetterModal의 불필요한 api 호출 제거

* fix: HomeRight의 useEffect 의존성 배열에 fetchIncomingLetters 추가

* fix: 공유 편지 미리보기에서 텍스트와 버튼이 겹쳐보이는 오류 해결

* refactor: hasNewLetters 로컬 상태 제거 및 arrivedCount 전역 상태로 대체

* fix: 특정 모바일 크기에서 내 편지함이 가려져 잘 안 보이는 오류 해결

* fix: 특정 모바일 크기에서 게시판이 잘 안 보이는 오류 해결

* design: 홈 페이지 공유 요청 모달에 스크롤 기능 추가

* style: 불필요한 console.log 삭제

* refactor: 테스트용 코드 삭제

* refactor: 'Letter' 인터페이스 이름을 'ShareLetter'로 변경

* fix: selector로 필요한 값만 불러오도록 수정하여 불필요한 렌더링 방지

* feat: 로그인 기능구현 (#52)

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* feat: 로그인 기능 임시 구현
- API 완성 되지 않음 : 논의된 부분을 바탕으로 임시로 제작함(작동 안함)
- 토큰을 전달 받기 위해 권한 상태 페이지 추가(보여주기 위한 용도가 아니라 쿼리문으로 토큰 전달을 위한 목적)

* feat: logout API 추가

* test: 로그인 테스트용 임시 커밋

* refactor: API 변경 사항 수정 반영, 토큰관련 interceptor 문 수정
- API 수정 반영하여 오류 사항들 수정
- 기존 interceptor 문에 오류가 있어서 수정
- AuthCallback Page에서 회원정보 설정 및 우편번호 발급

* test: 탈퇴 처리 테스트

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* Fix: intercepter 오류 해결
- intercepter retry 코드 빠진 부분 수정
- header에 잘못 설정 하는 부분 수정

* feat: 마이페이지 로그아웃 적용
- 로그아웃 테스트를 위해 마이페이지에 로그아웃 기능을 먼저 구현했습니다!

* Update src/pages/Auth/index.tsx

refac: 코드 개선

Co-authored-by: Minha Ahn <[email protected]>

* refactor: 코드 리뷰 반영
- 로그인 타입 파일 만듦
- logout 중복 선언 정리
- myPage 탈퇴 추가, p 태그 -> 버튼
- useAuthState 상태 가져오는 코드 수정

* refactor: myPage 오타 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>

* FIx, Feat: 로그인 기능 버그 수정, 권한별 접근 페이지 기능 추가 (#56)

* Fix: reissue 요청 수정

* Fix: 무한 response intercept 수정
- 요청 queue 포함

* feat: 권한별 접근 페이지 기능 추가
- PrivateRoute 추가하여 로그인된 사용자만 접근 가능하도록 설정
- AuthCallbackPage 임의로 접근시 home, login redirection 추가
- 로그인된 사용자는 login 접근 불가
- TODO
  - [ ] : intercepters.response에서 reissue 실패하는 경우 기존 api 함수에 catch로 에러 전달이 안되는 것 같음(추가로 문제 상황을 확인)

---------

Co-authored-by: nirii00 <[email protected]>

* feat: deploy.yml 생성

- main branch 자동 배포를 위해 프로젝트 빌드 및 deploy.yml 파일 생성
  - secret key 등록
  - 캐시 값을 바탕으로 패키지 설치 확인
- strictMode 활성화

* fix: pnpm install 에러 수정

* fix: 빌드 폴더 경로 수정

---------

Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Seungyeon Han (Tiffany) <[email protected]>
wldnjs990 added a commit that referenced this pull request Mar 4, 2025
* design: 모바일 뷰 기본 틀 설정 (#2)

* chore: mui icon 라이브러리 설치

* design: 최대 너비 600px 제한

* design: 모바일 viewport 문제 개션을 위한 훅 추가

* design: 마이페이지 퍼블리싱 (#8)

* design: 마이페이지 에셋 추가

* design: 마이페이지 퍼블리싱

* design: ConfirmModal 컴포넌트 구현 및 탈퇴 모달 적용

* design: 모달 배경 이미지 적용

* design: 모달 컴포넌트 버튼 비율 동일하도록 수정

* refactor: 중복되는 버튼 디자인 스타일 클래스로 분리

* design: 배경 오버레이 이미지 추가

* fix: useViewport 계산 상수 수정

* feat: 온도에 맞는 텍스트 보여주는 함수 추가

* refactor: hn 태그 적용

* refactor: Header 컴포넌트를 공통 레이아웃으로 분리

* refactor: 모달 오버레이 공통 컴포넌트로 분리

* design: 알림페이지 퍼블리싱 (#10)

* design: 알림 페이지 에셋 추가

* feat: 알림 아이콘 - 알림 페이지 라우팅 연결

* design: 경고 모달창 퍼블리싱

* design: 알림 페이지 퍼블리싱

* design: 페이지 상단 간격 수정

* refactor: 레이아웃 컴포넌트 구조 수정

* design: 편지작성 페이지 퍼블리싱 (#13)

* design:편지 작성 페이지 작업 시작

* design:폰트 css 추가

* design:편지 작성 페이지 작업중

* design:글 작성 페이지 관련 이미지

* design:애니메이션 요소, 테마 제외한 퍼블리싱 완료

* design:편지지 테마선택 퍼블리싱 완료

* refactor:타입명 파스칼 케이스로 변경 & 상수명 대문자로 변경 & 타입 export import문 제거 & 몇몇 코드 상수파일 통합 & 타입파일 types폴더로 이동

* refactor:코드리뷰 수정사항 적용

* design:편지작성 완료 애니메이션 구현

* design:고민편지 작성 결과에도 애니메이션 적용 & ResultLetter 컴포넌트 공용 컴포넌트로 이동

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* design: 온보딩 페이지 퍼블리싱 (#18)

* design: 온보딩 페이지 퍼블리싱

우편번호 페이지 퍼블리싱 완료
우편번호 애니메이션 구현 완료
애니메이션 페이지 퍼블리싱 완료
애니메이션 페이지 구현 중
관리자 편지는 컴포넌트 제작 후 라우팅 연결할 예정

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design: 온보딩 페이지 편지 애니메이션 구현

- 온보딩 페이지에서 편지 애니메이션 구현
- TODO: 모바일 뷰 확인
- TODO: 편지 상세 링크

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* refactor: pr 피드백 반영

- 이미지 에셋 정리
- animation 파일 분리
- css 충돌 해결
- spinner -> containerRef 오류 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>

* design: 홈 페이지 퍼블리싱  (#19)

* design: 홈 페이지 에셋 추가

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* refactor: package-json 삭제

* refactor: ModalOverlay 컴포넌트 새 속성에 맞춰 모달 정리

* fix: import 오류 해결

* refactor: SpecialLetterBanner 애니메이션 animation.css로 분리

* design: Home에서 grow 적용으로 불필요한 h-screen 제거

* rename: 에셋 파일명을 케밥 케이스로 변경

* remove: 필요없는 에셋 삭제

* fix: 이미지 경로 import 방식 수정

* refactor: 버튼 컴포넌트 반복 로직 개선

* style: HomeRight 레이아웃 수정

* refactor: max-w 값 수정 및 불필요한 삼항 연산자 제거

* rename: Navbar를 HomeHeader로 대체

* rename: 홈 페이지 배경 이미지 업데이트

* fix: 모바일 및 웹에서 레이아웃 오류 해결, 홈 페이지 구조 리팩토링

* design: 홈 페이지 왼쪽 배경 width 조정

* design: SpecialLetterBanner width 조정

* design: 게시판 이미지 버튼 width 조정

* fix: coflict 오류 해결

* design: 로그인 및 랜딩 페이지 퍼블리싱 (#22)

* design: 전체 배경 그라데이션 삽입

* design: 로그인 페이지 에셋 추가

* design: 로그인 페이지 퍼블리싱

* design: 로그인 페이지 에셋 변경 및 반영

* design: 랜딩페이지 퍼블리싱

* remove: 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 로그인 아이콘에 aria-label 추가

* style: 랜딩페이지 원 크기 수정

* design: 홈 페이지 공유 미리보기 퍼블리싱  (#25)

* fix: 홈 페이지 게시판 라우팅 오류 해결

* fix: 랜덤 응원 메시지 z-index 조정으로 클릭 안되는 오류 해결

* design: 홈 페이지 공유 미리보기 에셋 추가

* design: 홈 페이지 공유 미리보기 퍼블리싱

* fix: 랜덤 응원 메시지가 모달보다 위로 뜨는 오류 해결

* remove: landing blur 중복 에셋 삭제

* fix: landing blur 에셋 import 경로 수정

* design, feat, chore : 편지 작성 페이지 추가 퍼블리싱 + 기능구현 + API연결 + 관리자페이지 퍼블리싱 (#28)

* design : 카테고리 버튼 사이즈 full로 변경

* design : 옵션 슬라이드 바텀시트 애니메이션 구현(약간 미완)

* refactor:관리자 / 모바일용 레이아웃 분리

* design : 관리자 페이지 퍼블리싱

* design:관리자 페이지 퍼블리싱

* refactor : 폰트 선택 모달 아이콘 svgr 변경 + 목API 형식에 맞춰 타입 수정 + API 연결 작업 90% 완료

* feat:글작성 페이지 쿼리스트링으로 이전편지 가져오기 API연결

* feat:편지 상세 페이지 API 데이터바인딩 90%완료(유저 우편번호 데이터 필요)

* feat:편지삭제 api 생성

* feat:글작성, 상세 페이지 뒤로가기 버튼 + 상세페이지 글 삭제 버튼 추가

* refactor : ResultLetter 타입 변경

* feat:글 작성 페이지 네비게이션 가드 테스트

* fix:코드리뷰 수정사항 반영

* feat: 내 편지함 기능 구현 1차 (#30)

* feat: 내 편지함, 상세 기능 구현 1차
- 내 편지함 기능구현
  - 렌더링
  - 3의 배수가 아닌 경우 이미지 추가
  - 아무것도 없을 때 노트 추가
- 내 편지함 상세 기능 구현
  - 공유 작성 및 전송
  - 편지 리스트 렌더링
  - 상대방 차단하기
- TODO
  - [ ] tanstackQuery 적용
  - [ ] 무한 스크롤? 적용할지?
  - [ ] 상태관리 확인하기

* refactor: API 컨벤션 통일

- API 파일이름 수정
- api.ts 삭제

* refactor: merge 후 오류 해결

---------

Co-authored-by: nirii00 <[email protected]>

* design: 404 페이지 디자인 (#33)

- 404 페이지 퍼블리싱
- 홈으로 가는 버튼 추가

Co-authored-by: nirii00 <[email protected]>

* feat: 롤링페이퍼 기능 구현 (mock api) (#35)

* feat: Tanstack query를 이용한 데이터 가져오는 커스텀 훅 useFetchQuery 구현

* feat: NoticeRollingPaper에 데이터 패칭 적용
- NoticeRolling -> NoticeRollingPaper로 컴포넌트 명 수정

* feat: 홈 페이지에 공용 컴포넌트 적용

* rename: MessageDetailModal -> CommentDetailModal 컴포넌트 명 수정

* rename: Message -> Comment 컴포넌트 명 수정

* feat: 롤링페이퍼 조회 기능 구현

* refactor: 중복되는 배경 컴포넌트 적용 및 불필요한 에셋 제거

* refactor: 중복되는 메모 배경 컴포넌트 적용 및 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 중복되는 모달 배경 컴포넌트 적용 및 불필요한 에셋 제거

* style: 커스텀 훅 제거 및 queryClient 기본값 설정

* feat: 삭제 모달 추가 및 삭제 mock api 연결

* feat: 편지 추가 mock api 연결

* fix: 신고 ui 제거

* style: 사용하지 않는 코드 제거

* style: 엔드포인트 오타 수정

* style: 더미 제거

* feat: 오고 있는 편지 조회 기능 구현 (mock api) (#36)

* style: 홈 페이지 eslint 오류 해결

* remove: 사용하지 않는 파일 삭제

* feat: 오고 있는 편지 조회 mock api 연결

* feat: 오고 있는 편지 클릭 시 편지 상세 페이지로 이동

* feat: 편지 목록 높이 자동 조정 및 스크롤 기능 추가

* fix: 랜덤 응원 메시지 모달 위로 뜨는 오류 해결

* fix: 오고 있는 편지 클릭 시 편지 미리보기로 이동하는 라우팅 오류 해결

* feat: 오고 있는 편지 목록에서 시간이 다 된 항목을 자동으로 삭제하는 기능 추가

* refactor: 오고 있는 편지 파일 구조 수정

* style: 오고 있는 편지 함수 선언을 화살표 함수로 변환

* feat: 새로 도착한 편지 개수 계산 구현

* feat: 마이페이지 내 정보 조회 기능 구현 (mock api) (#39)

* feat: 마이페이지 내 정보 조회 기능 구현

* fix: merge conflict 해결

* fix: 온보딩 애니메이션 오류 해결 (#41)

- 온보딩 편지 애니메이션 모바일 오류 해결
- 온보딩 단계에 따른 상태관리
- 온보딩이 끝난 후 홈으로 이동

Co-authored-by: nirii00 <[email protected]>

* feat:관리자 페이지 1차 기능 구현 (#43)

* feat:관리자 페이지 신고기능 구현완료(페이지네이션 제외)

* feat:관리자 페이지 검열관리 필터링 기능 개발중(검열 단어 추가 구현중)

* feat:필터링 단어 추가기능 목api연결 완료(단어 삭제는 목api가 안만들어짐) + 차단 편지목록 퍼블리싱

* chore:badwords, filteredLetter 라우팅 분리 + 사이드바 버튼에 라우팅 연결

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 편지 게시글 공유 기능 구현 (mock api) (#53)

* feat: 공유 게시글 목록 조회 기능 구현

* feat: 공유 게시글 상세 조회 기능 구현

* feat: 게시글 공유 요청 수락/거절 기능 구현

* perf: NewLetterModal의 불필요한 api 호출 제거

* fix: HomeRight의 useEffect 의존성 배열에 fetchIncomingLetters 추가

* fix: 공유 편지 미리보기에서 텍스트와 버튼이 겹쳐보이는 오류 해결

* refactor: hasNewLetters 로컬 상태 제거 및 arrivedCount 전역 상태로 대체

* fix: 특정 모바일 크기에서 내 편지함이 가려져 잘 안 보이는 오류 해결

* fix: 특정 모바일 크기에서 게시판이 잘 안 보이는 오류 해결

* design: 홈 페이지 공유 요청 모달에 스크롤 기능 추가

* style: 불필요한 console.log 삭제

* refactor: 테스트용 코드 삭제

* refactor: 'Letter' 인터페이스 이름을 'ShareLetter'로 변경

* fix: selector로 필요한 값만 불러오도록 수정하여 불필요한 렌더링 방지

* feat: 로그인 기능구현 (#52)

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* feat: 로그인 기능 임시 구현
- API 완성 되지 않음 : 논의된 부분을 바탕으로 임시로 제작함(작동 안함)
- 토큰을 전달 받기 위해 권한 상태 페이지 추가(보여주기 위한 용도가 아니라 쿼리문으로 토큰 전달을 위한 목적)

* feat: logout API 추가

* test: 로그인 테스트용 임시 커밋

* refactor: API 변경 사항 수정 반영, 토큰관련 interceptor 문 수정
- API 수정 반영하여 오류 사항들 수정
- 기존 interceptor 문에 오류가 있어서 수정
- AuthCallback Page에서 회원정보 설정 및 우편번호 발급

* test: 탈퇴 처리 테스트

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* Fix: intercepter 오류 해결
- intercepter retry 코드 빠진 부분 수정
- header에 잘못 설정 하는 부분 수정

* feat: 마이페이지 로그아웃 적용
- 로그아웃 테스트를 위해 마이페이지에 로그아웃 기능을 먼저 구현했습니다!

* Update src/pages/Auth/index.tsx

refac: 코드 개선

Co-authored-by: Minha Ahn <[email protected]>

* refactor: 코드 리뷰 반영
- 로그인 타입 파일 만듦
- logout 중복 선언 정리
- myPage 탈퇴 추가, p 태그 -> 버튼
- useAuthState 상태 가져오는 코드 수정

* refactor: myPage 오타 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>

* FIx, Feat: 로그인 기능 버그 수정, 권한별 접근 페이지 기능 추가 (#56)

* Fix: reissue 요청 수정

* Fix: 무한 response intercept 수정
- 요청 queue 포함

* feat: 권한별 접근 페이지 기능 추가
- PrivateRoute 추가하여 로그인된 사용자만 접근 가능하도록 설정
- AuthCallbackPage 임의로 접근시 home, login redirection 추가
- 로그인된 사용자는 login 접근 불가
- TODO
  - [ ] : intercepters.response에서 reissue 실패하는 경우 기존 api 함수에 catch로 에러 전달이 안되는 것 같음(추가로 문제 상황을 확인)

---------

Co-authored-by: nirii00 <[email protected]>

* feat: deploy.yml 생성

- main branch 자동 배포를 위해 프로젝트 빌드 및 deploy.yml 파일 생성
  - secret key 등록
  - 캐시 값을 바탕으로 패키지 설치 확인
- strictMode 활성화

* fix: pnpm install 에러 수정

* fix: 빌드 폴더 경로 수정

* Fix: 환경 변수 설정 추가

---------

Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Seungyeon Han (Tiffany) <[email protected]>
wldnjs990 added a commit that referenced this pull request Mar 4, 2025
* design: 모바일 뷰 기본 틀 설정 (#2)

* chore: mui icon 라이브러리 설치

* design: 최대 너비 600px 제한

* design: 모바일 viewport 문제 개션을 위한 훅 추가

* design: 마이페이지 퍼블리싱 (#8)

* design: 마이페이지 에셋 추가

* design: 마이페이지 퍼블리싱

* design: ConfirmModal 컴포넌트 구현 및 탈퇴 모달 적용

* design: 모달 배경 이미지 적용

* design: 모달 컴포넌트 버튼 비율 동일하도록 수정

* refactor: 중복되는 버튼 디자인 스타일 클래스로 분리

* design: 배경 오버레이 이미지 추가

* fix: useViewport 계산 상수 수정

* feat: 온도에 맞는 텍스트 보여주는 함수 추가

* refactor: hn 태그 적용

* refactor: Header 컴포넌트를 공통 레이아웃으로 분리

* refactor: 모달 오버레이 공통 컴포넌트로 분리

* design: 알림페이지 퍼블리싱 (#10)

* design: 알림 페이지 에셋 추가

* feat: 알림 아이콘 - 알림 페이지 라우팅 연결

* design: 경고 모달창 퍼블리싱

* design: 알림 페이지 퍼블리싱

* design: 페이지 상단 간격 수정

* refactor: 레이아웃 컴포넌트 구조 수정

* design: 편지작성 페이지 퍼블리싱 (#13)

* design:편지 작성 페이지 작업 시작

* design:폰트 css 추가

* design:편지 작성 페이지 작업중

* design:글 작성 페이지 관련 이미지

* design:애니메이션 요소, 테마 제외한 퍼블리싱 완료

* design:편지지 테마선택 퍼블리싱 완료

* refactor:타입명 파스칼 케이스로 변경 & 상수명 대문자로 변경 & 타입 export import문 제거 & 몇몇 코드 상수파일 통합 & 타입파일 types폴더로 이동

* refactor:코드리뷰 수정사항 적용

* design:편지작성 완료 애니메이션 구현

* design:고민편지 작성 결과에도 애니메이션 적용 & ResultLetter 컴포넌트 공용 컴포넌트로 이동

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* design: 온보딩 페이지 퍼블리싱 (#18)

* design: 온보딩 페이지 퍼블리싱

우편번호 페이지 퍼블리싱 완료
우편번호 애니메이션 구현 완료
애니메이션 페이지 퍼블리싱 완료
애니메이션 페이지 구현 중
관리자 편지는 컴포넌트 제작 후 라우팅 연결할 예정

* design: 게시판 퍼블리싱 (#14)

* design: 편지 게시판 페이지 내 편지 미리보기 컴포넌트 퍼블리싱

* design: 롤링페이퍼 공지 컴포넌트 퍼블리싱

* design: 편지 공유 게시판 퍼블리싱

* refactor: ConfirmModal 배경 이미지 삽입 방식 개선

* rename: 파일명 형식 통일을 위한 에셋 파일명 수정

* design: 롤링페이퍼 편지 컴포넌트 퍼블리싱

* design: 롤링페이퍼 페이지 퍼블리싱

* refactor: ModalOverlay 컴포넌트로 모달의 외부 영역 클릭 로직 이동

* design: 롤링페이퍼 페이지 메시지 상세조회 모달 퍼블리싱

* design: 모달 활성화 시, 스크롤이 안되도록 수정

* design: 신고 모달 컴포넌트 퍼블리싱

* design: 롤링페이퍼 메사지 추가 모달 버픕ㄹ리싱

* design: Header 컴포넌트 position을 fixed로 변경

* refactor: 하단 배경 컴포넌트로 분리

* design: 마이페이지 중 내가 올린 게시물 페이지 퍼블리싱

* design: 게시판 상세 페이지의 편지 컴포넌트 퍼블리싱

* design: 편지 공유 게시글 상세 페이지 퍼블리싱

* feat: 게시글 상세 페이지 헤더 컴포넌트 뒤로가기 기능 추가

* remove: 중복 에셋 제거

* refactor: 중복 스타일 코드 utilities로 분리

* design: 내 편지함 페이지 퍼블리싱 (#16)

* design: 내 편지함 목록 페이지 퍼블리싱

* refactor: 리스트 디자인 컴포넌트로 분리

* design: 컴포넌트 props명 수정 및 sender, receiver 디자인 변경

* design: 내 편지함 상세 페이지 퍼블리싱

* refactor: 배경 이미지 삽입되는 로직 컴포넌트로 분리

* design: 필요한 모달 퍼블리싱 및 버튼과 연결

* rename: ListItemContainer -> ListItemWrapper로 컴포넌트명 수정

* refactor: 페이지 제목에 PageTitle 컴포넌트 적용

* design: 온보딩 페이지 편지 애니메이션 구현

- 온보딩 페이지에서 편지 애니메이션 구현
- TODO: 모바일 뷰 확인
- TODO: 편지 상세 링크

* design : 랜덤 편지 페이지 & 편지 상세 페이지 퍼블리싱 (#17)

* design:랜덤편지 메인화면, 편지선택 모달 퍼블리싱

* chore:스와이퍼 설치

* design:랜덤 편지 페이지 스와이퍼 적용

* design:편지 상세보기 퍼블리싱

* design:편지 작성 페이지 레이아웃 관련 수정

* design:랜덤편지 페이지 퍼블리싱

* design:편지 상세 페이지 퍼블리싱

* design:랜덤편지 세부사항 수정 & 공용 컴포넌트들로 코드 수정

* refactor:코드리뷰 수정사항 반영

* refactor: pr 피드백 반영

- 이미지 에셋 정리
- animation 파일 분리
- css 충돌 해결
- spinner -> containerRef 오류 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>

* design: 홈 페이지 퍼블리싱  (#19)

* design: 홈 페이지 에셋 추가

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* design: 홈 페이지 퍼블리싱

* design: 홈 페이지 모달 퍼블리싱

* refactor: package-json 삭제

* refactor: ModalOverlay 컴포넌트 새 속성에 맞춰 모달 정리

* fix: import 오류 해결

* refactor: SpecialLetterBanner 애니메이션 animation.css로 분리

* design: Home에서 grow 적용으로 불필요한 h-screen 제거

* rename: 에셋 파일명을 케밥 케이스로 변경

* remove: 필요없는 에셋 삭제

* fix: 이미지 경로 import 방식 수정

* refactor: 버튼 컴포넌트 반복 로직 개선

* style: HomeRight 레이아웃 수정

* refactor: max-w 값 수정 및 불필요한 삼항 연산자 제거

* rename: Navbar를 HomeHeader로 대체

* rename: 홈 페이지 배경 이미지 업데이트

* fix: 모바일 및 웹에서 레이아웃 오류 해결, 홈 페이지 구조 리팩토링

* design: 홈 페이지 왼쪽 배경 width 조정

* design: SpecialLetterBanner width 조정

* design: 게시판 이미지 버튼 width 조정

* fix: coflict 오류 해결

* design: 로그인 및 랜딩 페이지 퍼블리싱 (#22)

* design: 전체 배경 그라데이션 삽입

* design: 로그인 페이지 에셋 추가

* design: 로그인 페이지 퍼블리싱

* design: 로그인 페이지 에셋 변경 및 반영

* design: 랜딩페이지 퍼블리싱

* remove: 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 로그인 아이콘에 aria-label 추가

* style: 랜딩페이지 원 크기 수정

* design: 홈 페이지 공유 미리보기 퍼블리싱  (#25)

* fix: 홈 페이지 게시판 라우팅 오류 해결

* fix: 랜덤 응원 메시지 z-index 조정으로 클릭 안되는 오류 해결

* design: 홈 페이지 공유 미리보기 에셋 추가

* design: 홈 페이지 공유 미리보기 퍼블리싱

* fix: 랜덤 응원 메시지가 모달보다 위로 뜨는 오류 해결

* remove: landing blur 중복 에셋 삭제

* fix: landing blur 에셋 import 경로 수정

* design, feat, chore : 편지 작성 페이지 추가 퍼블리싱 + 기능구현 + API연결 + 관리자페이지 퍼블리싱 (#28)

* design : 카테고리 버튼 사이즈 full로 변경

* design : 옵션 슬라이드 바텀시트 애니메이션 구현(약간 미완)

* refactor:관리자 / 모바일용 레이아웃 분리

* design : 관리자 페이지 퍼블리싱

* design:관리자 페이지 퍼블리싱

* refactor : 폰트 선택 모달 아이콘 svgr 변경 + 목API 형식에 맞춰 타입 수정 + API 연결 작업 90% 완료

* feat:글작성 페이지 쿼리스트링으로 이전편지 가져오기 API연결

* feat:편지 상세 페이지 API 데이터바인딩 90%완료(유저 우편번호 데이터 필요)

* feat:편지삭제 api 생성

* feat:글작성, 상세 페이지 뒤로가기 버튼 + 상세페이지 글 삭제 버튼 추가

* refactor : ResultLetter 타입 변경

* feat:글 작성 페이지 네비게이션 가드 테스트

* fix:코드리뷰 수정사항 반영

* feat: 내 편지함 기능 구현 1차 (#30)

* feat: 내 편지함, 상세 기능 구현 1차
- 내 편지함 기능구현
  - 렌더링
  - 3의 배수가 아닌 경우 이미지 추가
  - 아무것도 없을 때 노트 추가
- 내 편지함 상세 기능 구현
  - 공유 작성 및 전송
  - 편지 리스트 렌더링
  - 상대방 차단하기
- TODO
  - [ ] tanstackQuery 적용
  - [ ] 무한 스크롤? 적용할지?
  - [ ] 상태관리 확인하기

* refactor: API 컨벤션 통일

- API 파일이름 수정
- api.ts 삭제

* refactor: merge 후 오류 해결

---------

Co-authored-by: nirii00 <[email protected]>

* design: 404 페이지 디자인 (#33)

- 404 페이지 퍼블리싱
- 홈으로 가는 버튼 추가

Co-authored-by: nirii00 <[email protected]>

* feat: 롤링페이퍼 기능 구현 (mock api) (#35)

* feat: Tanstack query를 이용한 데이터 가져오는 커스텀 훅 useFetchQuery 구현

* feat: NoticeRollingPaper에 데이터 패칭 적용
- NoticeRolling -> NoticeRollingPaper로 컴포넌트 명 수정

* feat: 홈 페이지에 공용 컴포넌트 적용

* rename: MessageDetailModal -> CommentDetailModal 컴포넌트 명 수정

* rename: Message -> Comment 컴포넌트 명 수정

* feat: 롤링페이퍼 조회 기능 구현

* refactor: 중복되는 배경 컴포넌트 적용 및 불필요한 에셋 제거

* refactor: 중복되는 메모 배경 컴포넌트 적용 및 불필요한 에셋 제거

* remove: 중복 에셋 제거

* refactor: 중복되는 모달 배경 컴포넌트 적용 및 불필요한 에셋 제거

* style: 커스텀 훅 제거 및 queryClient 기본값 설정

* feat: 삭제 모달 추가 및 삭제 mock api 연결

* feat: 편지 추가 mock api 연결

* fix: 신고 ui 제거

* style: 사용하지 않는 코드 제거

* style: 엔드포인트 오타 수정

* style: 더미 제거

* feat: 오고 있는 편지 조회 기능 구현 (mock api) (#36)

* style: 홈 페이지 eslint 오류 해결

* remove: 사용하지 않는 파일 삭제

* feat: 오고 있는 편지 조회 mock api 연결

* feat: 오고 있는 편지 클릭 시 편지 상세 페이지로 이동

* feat: 편지 목록 높이 자동 조정 및 스크롤 기능 추가

* fix: 랜덤 응원 메시지 모달 위로 뜨는 오류 해결

* fix: 오고 있는 편지 클릭 시 편지 미리보기로 이동하는 라우팅 오류 해결

* feat: 오고 있는 편지 목록에서 시간이 다 된 항목을 자동으로 삭제하는 기능 추가

* refactor: 오고 있는 편지 파일 구조 수정

* style: 오고 있는 편지 함수 선언을 화살표 함수로 변환

* feat: 새로 도착한 편지 개수 계산 구현

* feat: 마이페이지 내 정보 조회 기능 구현 (mock api) (#39)

* feat: 마이페이지 내 정보 조회 기능 구현

* fix: merge conflict 해결

* fix: 온보딩 애니메이션 오류 해결 (#41)

- 온보딩 편지 애니메이션 모바일 오류 해결
- 온보딩 단계에 따른 상태관리
- 온보딩이 끝난 후 홈으로 이동

Co-authored-by: nirii00 <[email protected]>

* feat:관리자 페이지 1차 기능 구현 (#43)

* feat:관리자 페이지 신고기능 구현완료(페이지네이션 제외)

* feat:관리자 페이지 검열관리 필터링 기능 개발중(검열 단어 추가 구현중)

* feat:필터링 단어 추가기능 목api연결 완료(단어 삭제는 목api가 안만들어짐) + 차단 편지목록 퍼블리싱

* chore:badwords, filteredLetter 라우팅 분리 + 사이드바 버튼에 라우팅 연결

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 편지 게시글 공유 기능 구현 (mock api) (#53)

* feat: 공유 게시글 목록 조회 기능 구현

* feat: 공유 게시글 상세 조회 기능 구현

* feat: 게시글 공유 요청 수락/거절 기능 구현

* perf: NewLetterModal의 불필요한 api 호출 제거

* fix: HomeRight의 useEffect 의존성 배열에 fetchIncomingLetters 추가

* fix: 공유 편지 미리보기에서 텍스트와 버튼이 겹쳐보이는 오류 해결

* refactor: hasNewLetters 로컬 상태 제거 및 arrivedCount 전역 상태로 대체

* fix: 특정 모바일 크기에서 내 편지함이 가려져 잘 안 보이는 오류 해결

* fix: 특정 모바일 크기에서 게시판이 잘 안 보이는 오류 해결

* design: 홈 페이지 공유 요청 모달에 스크롤 기능 추가

* style: 불필요한 console.log 삭제

* refactor: 테스트용 코드 삭제

* refactor: 'Letter' 인터페이스 이름을 'ShareLetter'로 변경

* fix: selector로 필요한 값만 불러오도록 수정하여 불필요한 렌더링 방지

* feat: 로그인 기능구현 (#52)

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* feat:편지 작성 페이지 1차 기능구현 (#47)

* feat:편지전송 답장 post api 연결완료

* feat:매칭된 편지 작성시 api 분기 구현

* feat:카테고리 페이지 페이지 뒤로가기 버튼 제거 + 이전단계 위치 조정

* feat:옵션 모달 외부 클릭시 슬라이드 닫히는 로직 구현

* feat: 편지작성 페이지 전역변수 편지전송 관련 request값들 객체형태로 통일

* fix:코드리뷰 사항 수정

* feat:랜덤 편지 + 편지 상세 1차 기능 구현 (#46)

* feat:편지 상세 페이지 삭제 모달 추가

* chore:기존 파일들 컴포넌트파일로 이동

* feat:쿨타임 컴포넌트 생성 + 랜덤편지 타입 수정

* feat:차단된 편지 버튼 disabled처리

* feat:편지 상세보기 모달 생성(매칭편지는 상세페이지와 분리)

* fix:쿨타임 페이지 letterWrapper 적용

* feat:편지 상세, 랜덤 편지 api throw error 예외처리 추가

* feat:편지 매칭 제한시간 구현

* feat:랜덤편지 페이지 매칭 제한시간, 쿨타임 로직 구현

* feat:랜덤편지 페이지 편지 매칭 제한시간, 쿨타임 시간 구현

* feat:매칭된 편지 전달시 location값 전달처리({randomMatched: true})

* feat:코드리뷰 사항 수정

* feat: 로그인 기능 임시 구현
- API 완성 되지 않음 : 논의된 부분을 바탕으로 임시로 제작함(작동 안함)
- 토큰을 전달 받기 위해 권한 상태 페이지 추가(보여주기 위한 용도가 아니라 쿼리문으로 토큰 전달을 위한 목적)

* feat: logout API 추가

* test: 로그인 테스트용 임시 커밋

* refactor: API 변경 사항 수정 반영, 토큰관련 interceptor 문 수정
- API 수정 반영하여 오류 사항들 수정
- 기존 interceptor 문에 오류가 있어서 수정
- AuthCallback Page에서 회원정보 설정 및 우편번호 발급

* test: 탈퇴 처리 테스트

* Perf: 내 편지함 탄스택 쿼리 적용 (#50)

* fix: 모바일에서 gradient 보이지 않는 문제 해결

* refactor: 내 편지함 및 상세 querykey 적용
- useState을 삭제 하고 데이터 관리 및 성능 최적화를 위해 tanstack query 적용

* fix: 편지 상세 무한 스크롤 오류 수정
- 마지막 편지 보일 시 새로 페이징 하는 로직을 response data에 맞게 수정
- react-intersection-observer 라이브러리를 이용하여 마지막 요소가 view에 들어오는지 확인

* fix: 내 편지함 디자인 보이지 않는 문제 해결
- gradietn class에 !important를 적용

---------

Co-authored-by: nirii00 <[email protected]>

* feat: 소셜로그인 및 회원가입 연결
- 소셜 로그인, 회원가입 시 리디렉션 페이지 연동 완료
- 유저정보 저장 진행 중

* Fix: intercepter 오류 해결
- intercepter retry 코드 빠진 부분 수정
- header에 잘못 설정 하는 부분 수정

* feat: 마이페이지 로그아웃 적용
- 로그아웃 테스트를 위해 마이페이지에 로그아웃 기능을 먼저 구현했습니다!

* Update src/pages/Auth/index.tsx

refac: 코드 개선

Co-authored-by: Minha Ahn <[email protected]>

* refactor: 코드 리뷰 반영
- 로그인 타입 파일 만듦
- logout 중복 선언 정리
- myPage 탈퇴 추가, p 태그 -> 버튼
- useAuthState 상태 가져오는 코드 수정

* refactor: myPage 오타 수정

---------

Co-authored-by: nirii00 <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: Minha Ahn <[email protected]>

* FIx, Feat: 로그인 기능 버그 수정, 권한별 접근 페이지 기능 추가 (#56)

* Fix: reissue 요청 수정

* Fix: 무한 response intercept 수정
- 요청 queue 포함

* feat: 권한별 접근 페이지 기능 추가
- PrivateRoute 추가하여 로그인된 사용자만 접근 가능하도록 설정
- AuthCallbackPage 임의로 접근시 home, login redirection 추가
- 로그인된 사용자는 login 접근 불가
- TODO
  - [ ] : intercepters.response에서 reissue 실패하는 경우 기존 api 함수에 catch로 에러 전달이 안되는 것 같음(추가로 문제 상황을 확인)

---------

Co-authored-by: nirii00 <[email protected]>

* feat: deploy.yml 생성

- main branch 자동 배포를 위해 프로젝트 빌드 및 deploy.yml 파일 생성
  - secret key 등록
  - 캐시 값을 바탕으로 패키지 설치 확인
- strictMode 활성화

* fix: pnpm install 에러 수정

* fix: 빌드 폴더 경로 수정

* Fix: 환경 변수 설정 추가

* fix: 캐시가 존재해도 pnpm install 실행되도록 수정

- pnpm 모듈 캐시가 hit될 경우 install이 실행되지 않아 빌드가 실패하는 문제를 해결
- 캐시가 존재하더라도 `pnpm install --frozen-lockfile`을 실행하여 의존성을 보장

---------

Co-authored-by: Minha Ahn <[email protected]>
Co-authored-by: wldnjs990 <[email protected]>
Co-authored-by: nirii00 <[email protected]>
Co-authored-by: Seungyeon Han (Tiffany) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발 이슈

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat:편지작성 페이지 기능구현

3 participants