Skip to content

[feat] 마이페이지 관리자 카드 분리 및 채팅 미확인 배지 반영#251

Merged
ff1451 merged 2 commits intodevelopfrom
250-feat-마이페이지-관리자-카드-분리-및-채팅-배지-반영
Mar 31, 2026

Hidden character warning

The head ref may contain hidden characters: "250-feat-\ub9c8\uc774\ud398\uc774\uc9c0-\uad00\ub9ac\uc790-\uce74\ub4dc-\ubd84\ub9ac-\ubc0f-\ucc44\ud305-\ubc30\uc9c0-\ubc18\uc601"
Merged

[feat] 마이페이지 관리자 카드 분리 및 채팅 미확인 배지 반영#251
ff1451 merged 2 commits intodevelopfrom
250-feat-마이페이지-관리자-카드-분리-및-채팅-배지-반영

Conversation

@ff1451
Copy link
Copy Markdown
Collaborator

@ff1451 ff1451 commented Mar 31, 2026

✨ 요약

- 하단 네비게이션 채팅 탭에 읽지 않은 메시지 개수 배지를 추가했습니다.
- 비로그인 상태에서는 읽지 않은 채팅 개수 조회가 동작하지 않도록 보완했습니다.
- 사용자 카드와 관리자 카드를 분리해 관리자 페이지에서 전용 `ManagerInfoCard` 사용하도록 정리했습니다.



😎 해결한 이슈



✅ 검증

  • pnpm lint

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 하단 네비게이션 채팅 탭에 읽지 않은 메시지 개수 배지 표시 (최대 '99+')
    • 관리자 페이지의 새로운 정보 카드 컴포넌트 추가
  • 버그 수정

    • 읽지 않은 메시지 카운트 조회 시 인증 상태 확인 추가
  • 개선사항

    • 프로필 페이지 사용자 정보 카드 UI 간소화

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 31, 2026

Walkthrough

사용자 정보 카드와 관리자 카드를 역할별로 분리하고, 하단 네비게이션 채팅 탭에 미읽음 메시지 배지를 추가했습니다. UserInfoCard는 프로필 진입 기능만 수행하도록 단순화되었고, ManagerInfoCard는 관리자 모드('manager')와 상세 모드('detail')를 지원하는 새 컴포넌트로 생성되었습니다. Manager 페이지들에서 UserInfoCardManagerInfoCard 렌더링으로 변경되었고, useUnreadChatCount에 인증 상태 조건을 추가하여 비로그인 상태에서 불필요한 폴링을 방지했습니다.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경 사항의 핵심(관리자 카드 분리 및 채팅 미확인 배지)을 명확하게 요약하고 있습니다.
Linked Issues check ✅ Passed 모든 링크된 이슈의 목표가 구현되었습니다: UserInfoCard 단순화, ManagerInfoCard 분리, 채팅 배지 추가, 비로그인 상태 처리.
Out of Scope Changes check ✅ Passed 모든 변경사항이 #250 이슈의 범위 내에 있으며 추가적인 범위 외 변경은 없습니다.
Description check ✅ Passed PR 목표와 변경사항이 명확하게 문서화되어 있고, 이슈 #250과 일치합니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 250-feat-마이페이지-관리자-카드-분리-및-채팅-배지-반영

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ff1451 ff1451 requested a review from Copilot March 31, 2026 11:21
@ff1451 ff1451 self-assigned this Mar 31, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
src/components/layout/BottomNav/index.tsx (1)

71-71: Tailwind v4 drop-shadow 유틸리티 사용 고려.

filter-[drop-shadow(...)] 대신 Tailwind v4의 drop-shadow-* 유틸리티 클래스 사용을 권장합니다.

♻️ 제안
-          className="pointer-events-none absolute top-[-26px] left-[-11px] z-10 h-[54px] w-[65px] max-w-none filter-[drop-shadow(0_3px_10px_rgba(0,0,0,0.10))]"
+          className="pointer-events-none absolute top-[-26px] left-[-11px] z-10 h-[54px] w-[65px] max-w-none drop-shadow-[0_3px_10px_rgba(0,0,0,0.10)]"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/components/layout/BottomNav/index.tsx` at line 71, The JSX in the
BottomNav component uses an inline arbitrary filter class
filter-[drop-shadow(0_3px_10px_rgba(0,0,0,0.10))] which should be replaced with
Tailwind v4 drop-shadow utilities for consistency and better performance; update
the className on the element in the BottomNav component (the JSX that currently
contains filter-[drop-shadow(0_3px_10px_rgba(0,0,0,0.10))]) to use an
appropriate drop-shadow-* utility (or compose existing utilities) that matches
the same offset/blur/opacity, ensuring you remove the arbitrary filter class and
test visual parity.
src/pages/User/MyPage/components/ManagerInfoCard.tsx (1)

47-49: 타이포그래피는 토큰 유틸 클래스 기준으로 통일하는 것이 좋습니다.

현재 text-[16px], text-[11px], text-xs 같은 커스텀 크기가 섞여 있어요. 이 파일은 신규 추가라 지금 맞춰두면 이후 유지보수가 쉬워집니다.

예시 diff
- <div className="text-[16px] leading-[1.6] font-bold text-indigo-700">{currentClub?.name} 정보</div>
- <div className="text-[11px] leading-[15px] font-medium text-indigo-300">
+ <div className="text-h2 text-indigo-700">{currentClub?.name} 정보</div>
+ <div className="text-cap1 text-indigo-300">

- <div className="mt-1.5 text-xs leading-3.5 font-medium text-indigo-300">
+ <div className="text-sub3 mt-1.5 font-medium text-indigo-300">

As per coding guidelines, **/*.{ts,tsx}: Use typography tokens (text-h1 through text-h5, text-sub1 through text-sub4, text-body1 through text-body3, text-cap1 through text-cap2) from src/styles/theme.css.

Also applies to: 101-103

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/User/MyPage/components/ManagerInfoCard.tsx` around lines 47 - 49,
Replace ad-hoc typography sizes in ManagerInfoCard (the div rendering
{currentClub?.name} and the div rendering {myInfo.studentNumber} /
{myInfo.universityName} / {currentClub?.position}, plus any similar occurrences
around lines noted) with the project's typography token classes from
src/styles/theme.css (e.g., text-h1..text-h5, text-sub1..text-sub4,
text-body1..text-body3, text-cap1..text-cap2). Identify the JSX elements inside
the ManagerInfoCard component that use className="text-[16px]" or "text-[11px]"
(and any "text-xs") and swap those to the appropriate semantic token (choose the
closest matching token for heading vs. meta/body) so the component consistently
uses typography tokens rather than custom pixel classes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/components/layout/BottomNav/index.tsx`:
- Line 71: The JSX in the BottomNav component uses an inline arbitrary filter
class filter-[drop-shadow(0_3px_10px_rgba(0,0,0,0.10))] which should be replaced
with Tailwind v4 drop-shadow utilities for consistency and better performance;
update the className on the element in the BottomNav component (the JSX that
currently contains filter-[drop-shadow(0_3px_10px_rgba(0,0,0,0.10))]) to use an
appropriate drop-shadow-* utility (or compose existing utilities) that matches
the same offset/blur/opacity, ensuring you remove the arbitrary filter class and
test visual parity.

In `@src/pages/User/MyPage/components/ManagerInfoCard.tsx`:
- Around line 47-49: Replace ad-hoc typography sizes in ManagerInfoCard (the div
rendering {currentClub?.name} and the div rendering {myInfo.studentNumber} /
{myInfo.universityName} / {currentClub?.position}, plus any similar occurrences
around lines noted) with the project's typography token classes from
src/styles/theme.css (e.g., text-h1..text-h5, text-sub1..text-sub4,
text-body1..text-body3, text-cap1..text-cap2). Identify the JSX elements inside
the ManagerInfoCard component that use className="text-[16px]" or "text-[11px]"
(and any "text-xs") and swap those to the appropriate semantic token (choose the
closest matching token for heading vs. meta/body) so the component consistently
uses typography tokens rather than custom pixel classes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9a0e7af4-05ef-44d3-987c-fd9fa1d891a3

📥 Commits

Reviewing files that changed from the base of the PR and between 027f479 and d96cbd8.

⛔ Files ignored due to path filters (2)
  • src/assets/svg/notifications.svg is excluded by !**/*.svg, !src/assets/** and included by **
  • src/assets/svg/unread-notification.svg is excluded by !**/*.svg, !src/assets/** and included by **
📒 Files selected for processing (9)
  • src/components/layout/BottomNav/index.tsx
  • src/pages/Chat/hooks/useUnreadChatCount.ts
  • src/pages/Manager/ManagedApplicationList/index.tsx
  • src/pages/Manager/ManagedClubDetail/index.tsx
  • src/pages/Manager/ManagedClubList/index.tsx
  • src/pages/Manager/ManagedMemberList/index.tsx
  • src/pages/Manager/ManagedRecruitment/index.tsx
  • src/pages/User/MyPage/components/ManagerInfoCard.tsx
  • src/pages/User/MyPage/components/UserInfoCard.tsx

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

마이페이지의 사용자/관리자 카드 역할을 분리하고, 하단 네비게이션의 채팅 탭에 “읽지 않은 메시지 수” 배지를 노출하기 위한 변경입니다. 관리자 관련 화면에서는 전용 ManagerInfoCard를 사용하도록 정리되어, UI 책임이 더 명확해졌습니다.

Changes:

  • UserInfoCard를 사용자 프로필 진입용으로 단순화하고, 관리자 전용 ManagerInfoCard를 신규 추가
  • 관리자 페이지들에서 기존 UserInfoCard(type=...) 사용을 ManagerInfoCard로 교체
  • BottomNav 채팅 탭에 미확인 메시지 배지 표시 + 비로그인 상태에서 unread 조회 비활성화

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/pages/User/MyPage/components/UserInfoCard.tsx 사용자 프로필 카드 UI를 단순화(프로필 이동 중심)
src/pages/User/MyPage/components/ManagerInfoCard.tsx 관리자용 카드/상세 카드 컴포넌트 분리 추가
src/pages/Manager/ManagedRecruitment/index.tsx 관리자 상세 화면에서 ManagerInfoCard(type="detail") 사용
src/pages/Manager/ManagedMemberList/index.tsx 관리자 상세 화면에서 ManagerInfoCard(type="detail") 사용
src/pages/Manager/ManagedClubList/index.tsx 관리자 카드 영역을 ManagerInfoCard로 대체
src/pages/Manager/ManagedClubDetail/index.tsx 관리자 상세 화면에서 ManagerInfoCard(type="detail") 사용
src/pages/Manager/ManagedApplicationList/index.tsx 관리자 상세 화면에서 ManagerInfoCard(type="detail") 사용
src/pages/Chat/hooks/useUnreadChatCount.ts authStatus 기반으로 unread 조회 활성 조건 보완
src/components/layout/BottomNav/index.tsx 채팅 탭에 unread 배지 추가 및 접근성 라벨 반영
src/assets/svg/unread-notification.svg 알림 아이콘 그래디언트 스타일 반영
src/assets/svg/notifications.svg 알림 아이콘 그래디언트 스타일 반영
Comments suppressed due to low confidence (1)

src/pages/Chat/hooks/useUnreadChatCount.ts:46

  • useQueryenabled: false로 두더라도 React Query는 기존 캐시된 data를 그대로 반환할 수 있습니다. 현재 구현은 authStatus !== 'authenticated'인 상태(로그아웃 직후/세션 전환/초기 unknown 등)에서도 캐시된 rooms를 기반으로 totalUnreadCount가 0이 아닌 값으로 계산될 수 있어, 비로그인 상태에서 배지가 노출되거나 이전 사용자 값이 잠깐 보이는 문제가 생길 수 있습니다. authStatus !== 'authenticated'일 때는 totalUnreadCount를 강제로 0으로 반환하거나(데이터 무시), 로그인/로그아웃에 따라 queryKey를 사용자 단위로 분리하거나 관련 쿼리를 reset/remove 하도록 보완해 주세요.
  const { data } = useQuery({
    ...chatQueries.rooms(),
    enabled: isEnabled && authStatus === 'authenticated',
    staleTime: UNREAD_CHAT_COUNT_REFETCH_INTERVAL,
    refetchInterval: isEnabled && authStatus === 'authenticated' ? UNREAD_CHAT_COUNT_REFETCH_INTERVAL : false,
  });

  const totalUnreadCount = data?.rooms.reduce((sum, room) => sum + room.unreadCount, 0) ?? 0;


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +28 to +50
const { data: myInfo } = useSuspenseQuery(authQueries.myInfo());
const { data: managedClubList } = useSuspenseQuery(managedClubQueries.clubs());
const { data: managedClub } = useSuspenseQuery(managedClubQueries.club(clubId));

const currentClub = managedClubList.joinedClubs.find((club) => club.id === clubId);

const handleClick = () => {
navigate(`/mypage/manager/${clubId}/info`);
};

return (
<Card
onClick={handleClick}
className="active:bg-indigo-5/50 cursor-pointer rounded-2xl border-0 px-3 py-[21px] shadow-[0px_0px_3px_0px_rgba(0,0,0,0.15)]"
>
<div className="flex items-center justify-between">
<div className="flex items-center gap-3">
<img className="h-12 w-12 rounded" src={managedClub?.imageUrl} alt={`${currentClub?.name} 동아리 사진`} />
<div>
<div className="text-[16px] leading-[1.6] font-bold text-indigo-700">{currentClub?.name} 정보</div>
<div className="text-[11px] leading-[15px] font-medium text-indigo-300">
{myInfo.studentNumber} / {myInfo.universityName} / {currentClub?.position}
</div>
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

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

ManagerDetailInfoCard에서 화면에 표시할 동아리 정보가 managedClubList.joinedClubs.find(...) 결과(currentClub)에 의존하고 있는데, currentClub가 없으면 텍스트가 비거나 alt"undefined 동아리 사진"처럼 렌더링될 수 있습니다(템플릿 리터럴에서 undefined가 문자열로 변환됨). 이미 managedClubQueries.club(clubId) 응답(ManagedClubResponse)에 clubName, position, imageUrl이 포함되어 있으니, 표시/alt에 managedClub.clubName 등을 사용하도록 통일하고 managedClubList 조회 및 currentClub 파생을 제거(또는 최소한 null-safe fallback 처리)해 주세요. 이렇게 하면 불필요한 요청도 줄고 데이터 불일치 가능성도 낮아집니다.

Copilot uses AI. Check for mistakes.
@ff1451 ff1451 merged commit 63ca216 into develop Mar 31, 2026
6 checks passed
ff1451 added a commit that referenced this pull request Apr 1, 2026
* 205 feat 이미지 전처리 기능 구현 (#206)

* feat: 전처리 로직 및 WebWorker 구현

* feat: 전처리 적용 및 preview 동시성 제어 로직 추가

* refactor: 리뷰 반영

* [hotfix] 하단바 너비 수정 (#208)

* hotfix: 하단바 너비 수정

* chore: 불필요한 값 제거

* refactor: 고정 gap 제거

* Reapply "[feat] 광고 배너 추가 (#200)"

This reverts commit c51ec85.

* [feat] 하단바 리디자인 (#213)

* chore: asset 추가

* feat: 하단바 리디자인 반영 및 레이아웃 수정

* [refactor] 광고 카드 레이아웃 밀림 수정 (#215)

* refactor: 광고 개수 측정 시기 변경 및 기본값 제거

* feat: 스켈레톤 UI 추가

* feat: 인앱 알림 페이지 및 토스트 구현 (#217)

* feat: 알림 API 및 스트림 기반 추가

* feat: 인앱 알림 레이어 추가

* feat: 알림 페이지 및 헤더 진입 구현

* fix: 알림 스트림 401 재시도 조건 정리

* fix: 알림 목록 이동 차단 제거

* refactor: 알림 공용 훅 위치 정리

* fix: 알림 재연결 캐시 동기화 추가

* fix: 알림 목록 토스트 큐 누적 방지

* fix: 알림 읽음 카운트 감소 조건 보강

* [refactor] 도메인별 TanStack Query 훅 정리 (#219)

* chore: pwa용 이미지 제거

* refactor: auth 도메인 쿼리와 뮤테이션 정리

* refactor: council과 schedule 조회 훅 정리

* refactor: chat과 notification 캐시 처리 정리

* refactor: club 조회와 지원 플로우 정리

* refactor: manager 도메인 캐시 처리 정리

* refactor: studyTime 도메인 쿼리와 뮤테이션 정리

* refactor: 광고와 업로드 도메인 훅 정리

* [refactor] mutaton query 및 hook 추가 수정 (#221)

* refactor: auth와 user myInfo 훅 정리

* refactor: club과 schedule 조회 훅 정리

* refactor: chat과 notification 훅 구조 정리

* refactor: club 지원 뮤테이션 훅 정리

* refactor: manager 뮤테이션 훅 구조 정리

* refactor: mutation 훅 cache 정리

* refactor: 컨벤션 통일

* refactor: isRead 조건 정리

* fix: 채팅 스크롤 문제 수정

* refactor: 불필요한 코드 제거

* [fix] 모바일 환경 입력창과 키보드 간의 간격이 큰 문제 수정 (#223)

* chore: 가공용 safeArea 변수 선언

* refactor: 고정 패딩 값 수정 및 safeArea 적용 변경

* feat: 키보드 활성화 감지 및 safeArea 적용 여부 기능 추가

* refactor: 매직넘버 상수화 및 가로모드 처리

* [fix] 키보드 활성화 시 화면 흔들림 문제 수정 (#225)

* refactor: 채팅 viewport 훅 네이밍 정리

* refactor: viewport 높이 잠금 훅 적용 시점 조정

* [fix] 키보드 활성화 시 채팅 화면 전체가 흔들리는 문제 수정 (#227)

* refactor: 채팅 viewport 훅 네이밍 정리

* refactor: viewport 높이 잠금 훅 적용 시점 조정

* fix: 채팅 화면 스크롤 잠금으로 키보드 흔들림 완화

* fix: 입력 포커스 중 viewport offset 고정 (#229)

* fix: 문서 루트 스크롤 잠금으로 빈 공간 잔류 방지 (#232)

* [fix] 키보드 활성화 시 채팅 화면 상단 고정이 깨지고 빈 공간이 남는 문제 수정 (#234)

* fix: 채팅 화면 상단 고정 깨짐과 빈 공간 잔류 수정

* refactor: 라우트 조건 수정

* fix: 문서 스크롤 위치 감지 보강

* refactor: 입력 요소 판별 유틸과 스크롤 주석 정리

* [fix] 키보드 활성화 시 채팅 화면에서 문서 스크롤이 발생하는 문제 수정 (#236)

* fix: 채팅 문서 스크롤 제스처 차단

* fix: 입력 요소 터치 동작 예외 처리

* [fix] 키보드 활성화 시 채팅방이 마지막 메시지 위치를 유지하지 못하는 문제 수정 (#238)

* fix: 키보드 활성화 시 채팅 하단 정렬 유지

* refactor: 채팅 리사이즈 관찰 안정화

* fix: mypage 연계 약관 페이지 뒤로가기 수정 (#240)

* refactor: alias import 경로 정리

* fix: query 설정과 suspense 분기 정리

* refactor: 관리자 화면 스타일 유틸 정리

* fix: 이미지 전처리 예외 처리 보강

* fix: 헤더와 회비 화면 동작 정리

* fix: 공통 유틸 안정성 개선

* fix: 이미지 전처리 실패 처리를 보정

* fix: 모집 공고 저장 후 설정 반영 순서 조정

* fix: 부원 직책 변경 실패 처리를 보강

* fix: 약관 링크 접근성을 개선

* fix: 공통 쿼리와 유틸 안정성을 보완

* [feat] 동적 버전 정보 표시 구현 (#211)

* feat: 동적 버전 정보 표시 구현

* refactor: 버전 정보 미 존재시 v 표시 제거

* [feat] 메인화면 동아리 카드 디자인 수정 반영 (#242)

* feat: 메인화면 동아리 카드 디자인 수정

* chore: 하단바 아이콘 수정

* refactor: 코드래빗 리뷰 반영

* refactor: and 연산자로 변경

* apiClient 코드 중복 제거 및 네이티브 브릿지 인증 동기화 중앙화 (#244)

* refactor: apiClient 코드 중복 제거 및 네이티브 브릿지 인증 동기화 중앙화

* refactor: body 직렬화 가드를 plain object/array로 한정

* fix: body 읽기 중 AbortError가 ParseError로 오분류되는 문제 수정

* [refactor] 에러 처리 유틸 및 utils 구조 정리 (#246)

* refactor: 에러 처리 유틸 및 공통 토스트 흐름 정리

* refactor: utils 폴더 구조를 역할별로 정리

* refactor: 코드래빗 리뷰 반영

* refactor: 코드래빗 리뷰 반영

* Update src/pages/Home/components/HomeClubSection.tsx

* fix: 인증 세션 복구 흐름 정리

* fix: 홈 동아리 카드 레이아웃 정리

* [feat] 총동아리 페이지 리디자인 및 하단 오버레이 정리 (#249)

* refactor: 하단 오버레이 처리 공통화

* feat: 총동아리 페이지와 헤더 리디자인 반영

* fix: 채팅 하단 여백과 외부 링크 속성 수정

* refactor: 총동아리 헤더 설정 정리

* fix: 총동아리 상세 접근성과 스타일 보완

* [feat] 마이페이지 관리자 카드 분리 및 채팅 미확인 배지 반영 (#251)

* feat: 하단 채팅 배지 표시 및 조회 조건 보완

* refactor: 관리자 정보 카드 컴포넌트 분리

* feat: 채팅 페이지 리디자인 (#252)

* feat: 채팅 페이지 리디자인

* fix:tailwind 문법 수정

* fix: 코드 수정

* fix: 폰트 색상 및 위치 수정

* fix: 채팅방 사람수 정렬

* fix: 오타 수정

* chore: conflict 해결 중 누락된 부분 수정

* [refactor] 광고 렌더링 조건 수정 (#254)

* refactor: 광고 렌더링 조건 수정

* docs: 문서명 변경

---------

Co-authored-by: 박성주 <145267904+ParkSungju01@users.noreply.github.com>
@ff1451 ff1451 deleted the 250-feat-마이페이지-관리자-카드-분리-및-채팅-배지-반영 branch April 7, 2026 09:32
ff1451 added a commit that referenced this pull request Apr 21, 2026
* [배포] 이미지 전처리, 광고 기능, 하단바 리디자인, 인앱 알림 페이지 및 토스트 프로덕션 배포 (#230)

* 205 feat 이미지 전처리 기능 구현 (#206)

* feat: 전처리 로직 및 WebWorker 구현

* feat: 전처리 적용 및 preview 동시성 제어 로직 추가

* refactor: 리뷰 반영

* [hotfix] 하단바 너비 수정 (#208)

* hotfix: 하단바 너비 수정

* chore: 불필요한 값 제거

* refactor: 고정 gap 제거

* Reapply "[feat] 광고 배너 추가 (#200)"

This reverts commit c51ec85.

* [feat] 하단바 리디자인 (#213)

* chore: asset 추가

* feat: 하단바 리디자인 반영 및 레이아웃 수정

* [refactor] 광고 카드 레이아웃 밀림 수정 (#215)

* refactor: 광고 개수 측정 시기 변경 및 기본값 제거

* feat: 스켈레톤 UI 추가

* feat: 인앱 알림 페이지 및 토스트 구현 (#217)

* feat: 알림 API 및 스트림 기반 추가

* feat: 인앱 알림 레이어 추가

* feat: 알림 페이지 및 헤더 진입 구현

* fix: 알림 스트림 401 재시도 조건 정리

* fix: 알림 목록 이동 차단 제거

* refactor: 알림 공용 훅 위치 정리

* fix: 알림 재연결 캐시 동기화 추가

* fix: 알림 목록 토스트 큐 누적 방지

* fix: 알림 읽음 카운트 감소 조건 보강

* [refactor] 도메인별 TanStack Query 훅 정리 (#219)

* chore: pwa용 이미지 제거

* refactor: auth 도메인 쿼리와 뮤테이션 정리

* refactor: council과 schedule 조회 훅 정리

* refactor: chat과 notification 캐시 처리 정리

* refactor: club 조회와 지원 플로우 정리

* refactor: manager 도메인 캐시 처리 정리

* refactor: studyTime 도메인 쿼리와 뮤테이션 정리

* refactor: 광고와 업로드 도메인 훅 정리

* [refactor] mutaton query 및 hook 추가 수정 (#221)

* refactor: auth와 user myInfo 훅 정리

* refactor: club과 schedule 조회 훅 정리

* refactor: chat과 notification 훅 구조 정리

* refactor: club 지원 뮤테이션 훅 정리

* refactor: manager 뮤테이션 훅 구조 정리

* refactor: mutation 훅 cache 정리

* refactor: 컨벤션 통일

* refactor: isRead 조건 정리

* fix: 채팅 스크롤 문제 수정

* refactor: 불필요한 코드 제거

* [fix] 모바일 환경 입력창과 키보드 간의 간격이 큰 문제 수정 (#223)

* chore: 가공용 safeArea 변수 선언

* refactor: 고정 패딩 값 수정 및 safeArea 적용 변경

* feat: 키보드 활성화 감지 및 safeArea 적용 여부 기능 추가

* refactor: 매직넘버 상수화 및 가로모드 처리

* [fix] 키보드 활성화 시 화면 흔들림 문제 수정 (#225)

* refactor: 채팅 viewport 훅 네이밍 정리

* refactor: viewport 높이 잠금 훅 적용 시점 조정

* [fix] 키보드 활성화 시 채팅 화면 전체가 흔들리는 문제 수정 (#227)

* refactor: 채팅 viewport 훅 네이밍 정리

* refactor: viewport 높이 잠금 훅 적용 시점 조정

* fix: 채팅 화면 스크롤 잠금으로 키보드 흔들림 완화

* fix: 입력 포커스 중 viewport offset 고정 (#229)

* fix: 문서 루트 스크롤 잠금으로 빈 공간 잔류 방지 (#232)

* [fix] 키보드 활성화 시 채팅 화면 상단 고정이 깨지고 빈 공간이 남는 문제 수정 (#234)

* fix: 채팅 화면 상단 고정 깨짐과 빈 공간 잔류 수정

* refactor: 라우트 조건 수정

* fix: 문서 스크롤 위치 감지 보강

* refactor: 입력 요소 판별 유틸과 스크롤 주석 정리

* [fix] 키보드 활성화 시 채팅 화면에서 문서 스크롤이 발생하는 문제 수정 (#236)

* fix: 채팅 문서 스크롤 제스처 차단

* fix: 입력 요소 터치 동작 예외 처리

* [fix] 키보드 활성화 시 채팅방이 마지막 메시지 위치를 유지하지 못하는 문제 수정 (#238)

* fix: 키보드 활성화 시 채팅 하단 정렬 유지

* refactor: 채팅 리사이즈 관찰 안정화

* fix: mypage 연계 약관 페이지 뒤로가기 수정 (#240)

* refactor: alias import 경로 정리

* fix: query 설정과 suspense 분기 정리

* refactor: 관리자 화면 스타일 유틸 정리

* fix: 이미지 전처리 예외 처리 보강

* fix: 헤더와 회비 화면 동작 정리

* fix: 공통 유틸 안정성 개선

* fix: 이미지 전처리 실패 처리를 보정

* fix: 모집 공고 저장 후 설정 반영 순서 조정

* fix: 부원 직책 변경 실패 처리를 보강

* fix: 약관 링크 접근성을 개선

* fix: 공통 쿼리와 유틸 안정성을 보완

* [feat] 동적 버전 정보 표시 구현 (#211)

* feat: 동적 버전 정보 표시 구현

* refactor: 버전 정보 미 존재시 v 표시 제거

* [feat] 메인화면 동아리 카드 디자인 수정 반영 (#242)

* feat: 메인화면 동아리 카드 디자인 수정

* chore: 하단바 아이콘 수정

* refactor: 코드래빗 리뷰 반영

* refactor: and 연산자로 변경

* apiClient 코드 중복 제거 및 네이티브 브릿지 인증 동기화 중앙화 (#244)

* refactor: apiClient 코드 중복 제거 및 네이티브 브릿지 인증 동기화 중앙화

* refactor: body 직렬화 가드를 plain object/array로 한정

* fix: body 읽기 중 AbortError가 ParseError로 오분류되는 문제 수정

* [refactor] 에러 처리 유틸 및 utils 구조 정리 (#246)

* refactor: 에러 처리 유틸 및 공통 토스트 흐름 정리

* refactor: utils 폴더 구조를 역할별로 정리

* refactor: 코드래빗 리뷰 반영

* refactor: 코드래빗 리뷰 반영

* Update src/pages/Home/components/HomeClubSection.tsx

* fix: 인증 세션 복구 흐름 정리

* fix: 홈 동아리 카드 레이아웃 정리

* [feat] 총동아리 페이지 리디자인 및 하단 오버레이 정리 (#249)

* refactor: 하단 오버레이 처리 공통화

* feat: 총동아리 페이지와 헤더 리디자인 반영

* fix: 채팅 하단 여백과 외부 링크 속성 수정

* refactor: 총동아리 헤더 설정 정리

* fix: 총동아리 상세 접근성과 스타일 보완

* [feat] 마이페이지 관리자 카드 분리 및 채팅 미확인 배지 반영 (#251)

* feat: 하단 채팅 배지 표시 및 조회 조건 보완

* refactor: 관리자 정보 카드 컴포넌트 분리

* feat: 채팅 페이지 리디자인 (#252)

* feat: 채팅 페이지 리디자인

* fix:tailwind 문법 수정

* fix: 코드 수정

* fix: 폰트 색상 및 위치 수정

* fix: 채팅방 사람수 정렬

* fix: 오타 수정

* chore: conflict 해결 중 누락된 부분 수정

* [refactor] 광고 렌더링 조건 수정 (#254)

* refactor: 광고 렌더링 조건 수정

* docs: 문서명 변경

---------

Co-authored-by: 박성주 <145267904+ParkSungju01@users.noreply.github.com>

* refactor: 가이드 페이지 이미지 변경 및 구조 개선 (#260)

* hotfix: 가이드 이미지 경로 변경

---------

Co-authored-by: 박성주 <145267904+ParkSungju01@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] 마이페이지 관리자 카드 분리 및 채팅 미확인 배지 반영

2 participants