Skip to content

[FIX] 후기 카드 표시·상호작용 오류 및 후기 수정 사진 추가 불가 수정 - #299

Merged
junehuk merged 11 commits into
developfrom
fix/review-function-errors
Aug 9, 2026
Merged

[FIX] 후기 카드 표시·상호작용 오류 및 후기 수정 사진 추가 불가 수정#299
junehuk merged 11 commits into
developfrom
fix/review-function-errors

Conversation

@junehuk

@junehuk junehuk commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

작업 내용

  • 카드 잘림 수정CourseReviewCard가 메타(당일치기·자동차·친구와)와 태그 칩을 폭 계산 없이 그려 카드 밖으로 잘려 보였습니다. 코스 카드들과 같은 "재서 들어가는 만큼만 그린다" 기준을 적용했습니다.
  • 중복 정리 — 위 계산이 CourseCard·ContentCard·develop의 새 훅까지 세 벌이라 useVisibleItemCount 하나로 합치고, 폭 계산은 순수 함수로 떼어 테스트를 붙였습니다. getCompanionIcon 사본 3개도 utils/companionIcon.ts로 정리했습니다.
  • 좋아요 제거 — 리뷰 카드의 하트는 후기가 아니라 코스에 대한 좋아요라 오해를 줍니다. 카드에서 걷어냈습니다(코스 카드는 그대로).
  • 길게 누르기 → 클릭 — 후기 상세를 길게 눌러야 열리는 건 발견하기 어렵습니다. 카드를 누르면 열리게 하고, 코스 상세로는 모달의 '코스 보러가기'로 갑니다. 내 게시물에는 그 버튼이 없어 함께 연결했습니다.
  • 수정 시 사진 추가 불가 수정 — 사진을 모두 지운 뒤 추가하면 저장 버튼이 계속 비활성이었습니다. input.value를 비우면 live FileList가 함께 비워지는데 그 목록을 상태 갱신 함수 안에서 읽고 있었습니다.
  • 입력란 보완 — 수정 모달에 없던 안내 문구를 작성 화면과 맞추고, 글자 수 카운터(0/300)를 넣고 스크롤바를 감췄습니다.

변경 화면

  • / 홈 후기 · /recent-review-courses · /my-posts
  • /{yeogido|local}-course/detail/:courseId 및 그 하위 /reviews
  • 후기 작성 화면, 후기 수정 모달

확인 방법

  1. 후기가 보이는 화면에서 카드를 누르면 후기 상세가 열리고, 모달의 '코스 보러가기'가 동시에 눌리지 않는지 확인
  2. 홈 후기를 좌우로 스와이프할 때 모달이 열리지 않는지, ⋯ 버튼을 눌렀을 때도 안 열리는지 확인
  3. 동행이 긴 코스(예: 반려동물과)의 후기 카드에서 메타·태그가 잘리지 않고 통째로 빠지는지 확인
  4. 내 후기 → ⋯ → 수정 → 사진을 전부 지웠다가 다시 추가 → 저장 버튼이 활성화되고 저장되는지 확인
  5. 입력란에서 300자를 채우며 카운터가 글과 겹치지 않는지, 상자 아무 곳이나 눌러도 포커스가 가는지 확인

체크리스트

  • 로컬 실행 확인
  • 콘솔 에러 없음
  • 반응형 확인
  • 불필요한 console.log 제거
  • develop 최신 반영 완료
  • 관련 없는 파일 변경 없음

스크린샷

image image

참고 사항

  • 앞의 세 항목은 아직 체크하지 않았습니다. tsc -b / eslint . / build / test(210 pass)는 통과했지만, 이 PR의 핵심인 폭 측정과 포인터 이벤트는 자동 검증이 닿지 않습니다. 실기기 확인 후 채우겠습니다.
  • develop과 useVisibleItemCount.ts가 충돌했습니다(양쪽에서 같은 경로로 신규 추가). 시그니처·반환이 동일해 이쪽 버전(순수 함수 분리 + 테스트)을 남겼고, EditableCourseCard/EditableContentCard는 수정 없이 동작합니다. 다만 폭을 못 잰 항목이 있을 때 develop 버전은 계산을 포기했는데 이쪽은 그 항목에서 멈추고 앞의 것들은 보여줍니다 — 관리자 화면에서 태그 칩이 로드 순서대로 나타납니다.
  • getCompanionIcon 정리는 머지 후 발견한 중복이라 원래 범위 밖입니다. 분리를 원하시면 빼겠습니다.
  • /my-posts의 수정 진입은 여전히 깨져 있습니다. /users/me/posts 응답에 리뷰 이미지가 없어 모달이 0장으로 열리고, 사진을 추가해 저장하면 기존 사진이 지워집니다. 백엔드 대응이 필요해 이 PR에서 다루지 않았습니다.

관련 이슈

Closes #298


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **새 기능**
  - 후기 카드를 클릭하면 코스 상세 이동 대신 후기 상세 모달이 열립니다.
  - 후기 카드의 탭 및 키보드 조작 접근성이 개선되었습니다.
  - 후기 작성·수정 화면에 글자 수 제한, 안내 문구, 실시간 글자 수가 표시됩니다.
  - 후기 사진 추가 및 미리보기 처리가 안정화되었습니다.

- **개선 사항**
  - 카드의 메타데이터와 태그가 화면 너비에 맞게 표시됩니다.
  - 후기 카드에서 좋아요 및 길게 누르기 동작이 제거되었습니다.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

junehuk added 11 commits August 8, 2026 14:40
폭 계산만 countFittingItems로 떼어 Node 테스트 러너에서 검증한다.
ContentCard에 남아 있던 같은 로직 사본을 공용 훅으로 교체했다.

폭을 못 잰 항목이 있으면 계산을 통째로 포기하던 동작도 함께 바뀐다.
이제 그 항목에서 멈추되 앞의 항목은 그대로 세므로, 태그 칩 하나가
안 재져도 나머지가 전부 사라지지 않는다.
길게 누르기를 없애고 탭에 후기 상세를 붙였다. 코스 상세로는 모달의
'코스 보러가기'로 간다. 내 게시물에는 그 버튼이 연결돼 있지 않아
함께 연결했다.

탭 판정은 click에서 한다. pointerup에서 열면 뒤이어 오는 click이
그 자리에 새로 뜬 모달의 버튼에 꽂힌다. 취소는 이동량과
pointercancel로만 보는데, pointerleave는 터치에서 click보다 먼저
날아와 멀쩡한 탭까지 지우기 때문이다.
수정 모달에 없던 안내 문구(placeholder)를 작성 화면과 같게 맞추고,
문구와 300자 제한을 reviewForm 상수로 모았다.

카운터는 상자 안 아래 줄에 둔다. textarea 위에 겹쳐 놓으면 글이
스크롤될 때 그 아래로 지나가 겹쳐 보인다. 테두리를 바깥 상자로
옮겨 글 영역과 카운터 줄을 분리했고, 바깥 높이는 그대로라 화면
간격은 변하지 않는다.
카드는 role=button으로 노출되는데 useCardTap이 pointerdown을 본
클릭만 받아, 스크린리더나 스크립트가 만든 click으로는 열리지 않았다.
포인터 없이 온 detail 0 클릭을 활성화로 처리한다.

입력 상자를 label로 바꿔 여백과 카운터 줄을 눌러도 포커스가 가게
했다. 글자 수 카운터의 aria-live는 뺀다 - 글자마다 다시 읽혀
스크린리더에서는 소음이 된다.
…n-errors

# Conflicts:
#	src/hooks/useVisibleItemCount.ts
develop이 utils/companionIcon.ts를 추가하면서 같은 함수가 저장소에
셋이 됐다. CourseCard와 ContentCard의 사본을 지우고 공용 유틸을
쓰게 한다.
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
frontend Ready Ready Preview Aug 8, 2026 4:01pm

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4f56945e-434a-48ff-b689-e5834f9aacfb

📥 Commits

Reviewing files that changed from the base of the PR and between 8f46b7a and 6b23cbe.

📒 Files selected for processing (22)
  • src/components/common/ContentCard.tsx
  • src/components/common/CourseCard.tsx
  • src/components/common/CourseReviewCard.tsx
  • src/components/common/CourseReviewCardSkeleton.tsx
  • src/components/common/ReviewCard.tsx
  • src/components/common/ReviewEditModal.tsx
  • src/hooks/useCardTap.ts
  • src/hooks/useLongPress.ts
  • src/hooks/useVisibleItemCount.ts
  • src/pages/course-reviews/index.tsx
  • src/pages/detail/components/CourseDetailLayout.tsx
  • src/pages/detail/components/DetailReviewSection.tsx
  • src/pages/home/components/ReviewSection.tsx
  • src/pages/my-posts/index.tsx
  • src/pages/recent-review-courses/index.tsx
  • src/pages/review/components/ReviewTextArea.tsx
  • src/pages/review/reviewForm.ts
  • src/utils/companionIcon.ts
  • src/utils/reviewCard.ts
  • src/utils/visibleItemCount.ts
  • tests/review-card-mapper.test.ts
  • tests/visible-item-count.test.ts
💤 Files with no reviewable changes (4)
  • src/components/common/CourseReviewCardSkeleton.tsx
  • src/hooks/useLongPress.ts
  • tests/review-card-mapper.test.ts
  • src/utils/reviewCard.ts
📜 Recent review details
🧰 Additional context used
🧠 Learnings (7)
📚 Learning: 2026-07-26T17:09:23.387Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/course-basic-info/components/CompanionSelector.tsx:82-90
Timestamp: 2026-07-26T17:09:23.387Z
Learning: 이 프로젝트의 반응형 스케일 정책에서는 텍스트(폰트) 크기를 설계 기준 값에 전역 `scale`을 곱해 비율대로 스케일하세요. `12px`, `14px`처럼 특정 최소 하한을 강제로 적용하거나(클램프/바닥값) 임의의 픽셀 값으로 제한하지 마세요. 즉, 기준값(디자인 스펙) × `scale` 방식으로 계산해 비율이 유지되도록 구현합니다.

Applied to files:

  • src/pages/course-reviews/index.tsx
  • src/pages/detail/components/CourseDetailLayout.tsx
  • src/pages/home/components/ReviewSection.tsx
  • src/pages/detail/components/DetailReviewSection.tsx
  • src/pages/my-posts/index.tsx
  • src/pages/recent-review-courses/index.tsx
  • src/pages/review/components/ReviewTextArea.tsx
  • src/components/common/ReviewEditModal.tsx
  • src/components/common/CourseCard.tsx
  • src/components/common/ContentCard.tsx
  • src/components/common/ReviewCard.tsx
  • src/components/common/CourseReviewCard.tsx
📚 Learning: 2026-08-03T09:41:11.931Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 188
File: src/pages/detail/components/CourseDetailLayout.tsx:202-205
Timestamp: 2026-08-03T09:41:11.931Z
Learning: When implementing the shared back-navigation UI component in yeogido/frontend, manage all UI dimensions, including positional offsets, according to the project’s global `scale` policy so the component remains visually consistent across screens.

Applied to files:

  • src/pages/course-reviews/index.tsx
  • src/pages/detail/components/CourseDetailLayout.tsx
  • src/pages/home/components/ReviewSection.tsx
  • src/pages/detail/components/DetailReviewSection.tsx
  • src/pages/my-posts/index.tsx
  • src/pages/recent-review-courses/index.tsx
  • src/pages/review/components/ReviewTextArea.tsx
  • src/components/common/ReviewEditModal.tsx
  • src/components/common/CourseCard.tsx
  • src/components/common/ContentCard.tsx
  • src/components/common/ReviewCard.tsx
  • src/components/common/CourseReviewCard.tsx
📚 Learning: 2026-07-26T17:09:27.685Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/course-basic-info/components/TransportSelector.tsx:84-91
Timestamp: 2026-07-26T17:09:27.685Z
Learning: In this project’s 390px-based continuous responsive scaling, do not apply an artificial minimum lower bound to text sizes (e.g., avoid clamping via Math.max/min-font-size patterns). Instead, compute typography using proportional ratio scaling: render font sizes as `VALUE * scale` (for example, `DESCRIPTION_FONT_SIZE * scale`). During review, flag any code that enforces a hard minimum text size that breaks the intended proportional scaling.

Applied to files:

  • src/pages/course-reviews/index.tsx
  • src/pages/detail/components/CourseDetailLayout.tsx
  • src/pages/home/components/ReviewSection.tsx
  • src/pages/detail/components/DetailReviewSection.tsx
  • src/pages/my-posts/index.tsx
  • src/pages/recent-review-courses/index.tsx
  • src/pages/review/components/ReviewTextArea.tsx
  • src/components/common/ReviewEditModal.tsx
  • src/components/common/CourseCard.tsx
  • src/components/common/ContentCard.tsx
  • src/components/common/ReviewCard.tsx
  • src/components/common/CourseReviewCard.tsx
📚 Learning: 2026-07-26T17:09:32.991Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/tag-selection/components/KeywordSelectionSection.tsx:51-56
Timestamp: 2026-07-26T17:09:32.991Z
Learning: When implementing responsive scaling in this project, prefer direct proportional calculations (e.g., using `VALUE * scale`) without applying artificial minimum lower bounds (clamps) to text sizes or other visual dimensions. Only introduce a lower bound when there is an explicitly documented exception; the primary allowed example is enforcing a 44px minimum touch target for interactive elements. In review, flag new/minimum clamps for text/visual dimensions unless they match an explicitly documented exception.

Applied to files:

  • src/pages/course-reviews/index.tsx
  • src/pages/detail/components/CourseDetailLayout.tsx
  • src/pages/home/components/ReviewSection.tsx
  • src/pages/detail/components/DetailReviewSection.tsx
  • src/pages/my-posts/index.tsx
  • src/pages/recent-review-courses/index.tsx
  • src/pages/review/components/ReviewTextArea.tsx
  • src/components/common/ReviewEditModal.tsx
  • src/components/common/CourseCard.tsx
  • src/components/common/ContentCard.tsx
  • src/components/common/ReviewCard.tsx
  • src/components/common/CourseReviewCard.tsx
📚 Learning: 2026-07-26T17:09:40.303Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/tag-selection/components/RepresentativePhotoSection.tsx:107-122
Timestamp: 2026-07-26T17:09:40.303Z
Learning: yeogido/frontend의 반응형 스케일 정책에 맞춰, 텍스트를 포함한 UI 치수는 (디자인 기준값) × 전역 `scale`로 “연속적으로” 계산하고, 12px·14px 같은 최소 폰트/사이즈 하한(floor) 클램프를 적용하지 않는다. `scaleValue`를 쓰더라도 텍스트에 임의의 minimum floor를 추가하거나 `Math.max(value, 12/14)` 같은 보정을 넣지 말 것.

Applied to files:

  • src/pages/course-reviews/index.tsx
  • src/pages/detail/components/CourseDetailLayout.tsx
  • src/pages/home/components/ReviewSection.tsx
  • src/pages/detail/components/DetailReviewSection.tsx
  • src/pages/my-posts/index.tsx
  • src/pages/recent-review-courses/index.tsx
  • src/pages/review/components/ReviewTextArea.tsx
  • src/components/common/ReviewEditModal.tsx
  • src/components/common/CourseCard.tsx
  • src/components/common/ContentCard.tsx
  • src/components/common/ReviewCard.tsx
  • src/components/common/CourseReviewCard.tsx
📚 Learning: 2026-07-09T14:49:12.548Z
Learnt from: kimtaehyeokkkk
Repo: yeogido/frontend PR: 18
File: src/components/common/ReviewCard.tsx:21-36
Timestamp: 2026-07-09T14:49:12.548Z
Learning: In `FestivalSection.tsx`, `CourseSection.tsx`, and `ReviewSection.tsx` under `src/pages/home/components/`, keep the local `isLoading` toggle as an intentional UI-only control for verifying skeleton/placeholder states. Do not flag `isLoading` as an issue for not being derived from real data fetching until the planned React Query migration; only raise concerns if the toggle is misused in a way that breaks the UI (e.g., it doesn’t control the intended skeleton/placeholder rendering or is clearly dead/unused code).

Applied to files:

  • src/pages/home/components/ReviewSection.tsx
📚 Learning: 2026-07-12T08:12:34.426Z
Learnt from: junehuk
Repo: yeogido/frontend PR: 35
File: src/pages/yeogido-course/search/index.tsx:90-96
Timestamp: 2026-07-12T08:12:34.426Z
Learning: In `src/components/common/ContentCard.tsx` and `src/components/common/ContentCardSkeleton.tsx`, remove the internal hard-coded `w-[163px]` so the component’s width is controlled only by the parent-provided `className` (e.g., `w-full`). When a call site needs the fixed 163px width, pass it explicitly via `className="w-[163px] shrink-0"` (or equivalent). For grid-based layouts like `grid grid-cols-2 gap-x-4 gap-y-[18px]`, keep `className="w-full"` on `ContentCard`/`ContentCardSkeleton` so each card stretches to fill its grid column track.

Applied to files:

  • src/components/common/ContentCard.tsx
🔇 Additional comments (20)
src/components/common/ReviewEditModal.tsx (3)

17-18: LGTM!


89-104: LGTM!


253-274: LGTM!

src/pages/review/components/ReviewTextArea.tsx (1)

4-7: LGTM!

Also applies to: 20-23, 34-34, 53-98

src/pages/review/reviewForm.ts (1)

6-12: LGTM!

Also applies to: 45-45

src/components/common/ContentCard.tsx (1)

9-10: LGTM!

Also applies to: 80-84

src/components/common/CourseCard.tsx (1)

8-9: LGTM!

Also applies to: 140-140

src/hooks/useVisibleItemCount.ts (1)

3-14: LGTM!

Also applies to: 40-40

src/utils/visibleItemCount.ts (1)

1-46: LGTM!

tests/visible-item-count.test.ts (1)

1-44: LGTM!

src/utils/companionIcon.ts (1)

10-15: LGTM!

src/pages/detail/components/CourseDetailLayout.tsx (1)

340-340: LGTM!

src/pages/my-posts/index.tsx (1)

112-113: LGTM!

Also applies to: 265-265, 336-345

src/components/common/CourseReviewCard.tsx (1)

8-10: LGTM!

Also applies to: 59-102, 127-212

src/components/common/ReviewCard.tsx (1)

7-7: LGTM!

Also applies to: 72-104

src/hooks/useCardTap.ts (1)

1-118: LGTM!

src/pages/course-reviews/index.tsx (1)

216-216: LGTM!

src/pages/detail/components/DetailReviewSection.tsx (1)

31-41: LGTM!

Also applies to: 144-146

src/pages/home/components/ReviewSection.tsx (1)

164-164: LGTM!

Also applies to: 200-202

src/pages/recent-review-courses/index.tsx (1)

166-166: LGTM!


📝 Walkthrough

Walkthrough

후기 카드의 표시 항목 계산을 공통화했다. 롱프레스와 카드 좋아요를 제거하고 클릭 기반 탭 처리를 도입했다. 후기 상세 모달 이동 흐름과 리뷰 입력·수정 UI를 변경했다.

Changes

후기 카드 표시 계산

Layer / File(s) Summary
표시 항목 계산 통합
src/components/common/ContentCard.tsx, src/components/common/CourseCard.tsx, src/components/common/CourseReviewCard.tsx, src/hooks/useVisibleItemCount.ts, src/utils/visibleItemCount.ts, tests/visible-item-count.test.ts
동행 아이콘과 메타·태그 표시 개수 계산을 공통 모듈로 이동했다. countFittingItems와 경계 조건 테스트를 추가했다.

카드 탭 및 후기 상세 흐름

Layer / File(s) Summary
카드 탭 처리와 속성 정리
src/hooks/useCardTap.ts, src/components/common/ReviewCard.tsx, src/components/common/CourseReviewCard.tsx, src/hooks/useLongPress.ts
롱프레스 구현을 제거하고 포인터 이동 취소와 키보드 활성화를 지원하는 useCardTap으로 변경했다. 카드 좋아요 관련 속성과 UI를 제거했다.
후기 상세 모달 연결
src/pages/course-reviews/index.tsx, src/pages/home/components/ReviewSection.tsx, src/pages/recent-review-courses/index.tsx, src/pages/detail/components/*, src/pages/my-posts/index.tsx, src/utils/reviewCard.ts, tests/review-card-mapper.test.ts
후기 카드 클릭이 후기 상세 모달을 열도록 변경했다. 모달에서 코스 ID가 있는 경우에만 코스 상세 이동을 연결했다.

리뷰 입력 및 수정 화면

Layer / File(s) Summary
리뷰 입력 계약과 UI
src/pages/review/reviewForm.ts, src/pages/review/components/ReviewTextArea.tsx, src/components/common/ReviewEditModal.tsx
리뷰 최대 글자 수와 placeholder를 공통 상수로 정의했다. 입력 영역에 글자 수 카운터와 접근성 레이블을 추가했다.
수정 사진 처리
src/components/common/ReviewEditModal.tsx
FileList를 배열로 복사한 뒤 남은 사진 슬롯을 계산하고 미리보기 URL을 생성하도록 변경했다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant ReviewCard
  participant useCardTap
  participant ReviewSection
  participant ReviewDetailModal
  User->>ReviewCard: 포인터 탭 또는 키보드 활성화
  ReviewCard->>useCardTap: 이벤트 전달
  useCardTap->>ReviewCard: 유효한 탭 실행
  ReviewCard->>ReviewSection: 리뷰 ID 전달
  ReviewSection->>ReviewDetailModal: 후기 상세 모달 열기
Loading

Possibly related PRs

  • yeogido/frontend#11: CourseCard의 동행 아이콘과 표시 계산 변경과 직접 연결된다.
  • yeogido/frontend#18: ReviewCard와 홈 후기 섹션의 롱프레스 흐름 변경과 직접 연결된다.
  • yeogido/frontend#243: 후기 카드와 ReviewEditModal의 상호작용 변경과 직접 연결된다.

Suggested reviewers: kjun-2, yoonsunmindd

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 30.77% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 후기 카드 표시·상호작용 오류와 후기 수정 사진 추가 문제라는 주요 변경 사항을 정확히 요약합니다.
Linked Issues check ✅ Passed 직접 연결된 이슈 [#298]의 카드 표시, 상호작용, 사진 수정, 입력 안내 및 관련 화면 요구 사항을 모두 반영합니다.
Out of Scope Changes check ✅ Passed 변경 사항은 직접 연결된 이슈 [#298]의 표시 수정, 공통화, 상호작용 변경 및 후기 수정 개선 범위에 포함됩니다.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/review-function-errors

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.

@KJun-2 KJun-2 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Image

수정 테스트 까지 확인했습니다. 수고하셨습니다!

@junehuk
junehuk merged commit 4fc7035 into develop Aug 9, 2026
3 checks passed
@junehuk
junehuk deleted the fix/review-function-errors branch August 9, 2026 04:48
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.

[FIX] 후기 카드 표시·상호작용 오류 및 후기 수정 사진 추가 불가 수정

2 participants