Skip to content

✨[feat]: 투표 - 요구사항에 맞춰 작성 플로우 개선#87

Open
honghoker wants to merge 15 commits into
DDD-Community:developfrom
honghoker:feat/final-vote
Open

✨[feat]: 투표 - 요구사항에 맞춰 작성 플로우 개선#87
honghoker wants to merge 15 commits into
DDD-Community:developfrom
honghoker:feat/final-vote

Conversation

@honghoker

Copy link
Copy Markdown
Member

작업 내역

API

  • 피드백 후속 질문 응답 디코딩 처리

UI

  • 팀 투표 질문 헤더 컴포넌트 분리
  • 팀 투표 사유 입력 문구를 서버 템플릿 기준으로 표시
  • 투표 단계 하단 버튼 고정
  • 투표 진행 중 뒤로가기 상단 바 표시
  • 투표 완료 화면 UI 적용
  • 투표 완료 아이콘 에셋 추가

검증

  • 팀 투표 다음 버튼 입력 검증 추가
  • 피드백 제출 버튼 필수 문항 검증 추가
  • 서술형 입력 300자 초과 차단
  • 공백/개행만 입력한 최소 글자 수 검증 예외 처리

UX

  • 팀 투표 1단계 답변 복원
  • 투표 작성 중 뒤로가기 확인 모달 추가
  • 피드백 예/아니오 버튼 터치 영역 확대
  • 텍스트 입력 중 팀 선택 시 입력 포커스 해제

honghoker added 15 commits June 16, 2026 23:10
- feedback template의 followUp 응답이 단일 객체로 내려올 때 디코딩 실패하던 문제 수정

- 배열 응답과 단일 객체 응답을 모두 받아 도메인 모델의 배열 형태로 변환
- 팀 투표 부문 제목, 최대 선택 수, 현재 선택 수 표시를 TeamVoteQuestionHeaderView로 분리

- TeamVoteCategoryView의 인라인 헤더 구현과 index 의존성을 제거
- 서버 템플릿의 reasonLabel을 사유 입력 설명으로 사용

- 사유가 필수인 부문에만 reasonMinLength를 적용
- 2단계에서 1단계로 돌아왔을 때 이전 팀 선택과 사유를 초기값으로 주입

- 서버 order 값을 기준으로 카테고리를 정렬해 저장된 답변과 매칭
- 팀 투표와 피드백 화면의 버튼을 ScrollView 밖 하단 영역으로 이동

- 긴 문항을 스크롤해도 다음/제출 버튼이 화면 하단에 유지되도록 레이아웃 조정
- 모든 부문에서 팀이 선택되고 필수 사유가 최소 길이를 만족할 때만 다음 버튼 활성화

- 사유 제출 값은 앞뒤 공백을 제거하고 공백만 입력된 경우 nil로 처리

- 내부 공백은 한 글자로 인정하는 입력 길이 계산을 적용
- 필수 다중 선택, 예/아니오, 서술형 문항이 유효할 때만 제출 버튼 활성화

- 서술형과 followUp 답변은 앞뒤 공백을 제거하고 공백만 입력된 값은 제출하지 않도록 처리

- 내부 공백은 한 글자로 인정하는 최소 5자 기준을 피드백 입력 UI와 검증 로직에 적용
- FeedbackTextEditor에서 최대 글자 수를 넘긴 입력을 즉시 잘라냄

- 초과 입력 시 토스트로 최대 입력 가능 글자 수를 안내

- 멤버 투표 화면에 toastOverlay를 연결
- 1단계와 2단계 좌측 edge swipe 시 작성 이탈 확인 모달을 표시

- 계속 작성은 현재 입력 화면을 유지하고 나가기는 단계에 따라 처리

- 2단계 나가기는 1단계 복귀로, 1단계 나가기는 투표 탭 이탈로 연결

- MemberMain에서 투표 이탈 delegate를 받아 출석 탭으로 복귀하고 투표 상태를 초기화
- 예/아니오 버튼이 HStack 안에서 균등한 폭을 갖도록 frame을 명시

- 최소 48pt 높이와 contentShape를 지정해 보이는 버튼 영역 전체가 탭되도록 조정
- 투표 진행 단계에서는 기존 상단 드롭다운 대신 뒤로가기 버튼만 표시
- 투표 완료, 이미 참여, 빈 상태에서는 기존 네비게이션 유지
- 뒤로가기 탭은 MemberMain ViewAction으로 받고 reducer에서 Vote 종료 요청으로 라우팅
- 팀 행을 탭할 때 키보드 포커스를 먼저 해제
- 포커스된 텍스트 입력 위치로 스크롤이 되돌아가는 현상을 방지
- 선택 변경은 다음 run loop에서 처리해 포커스 해제와 탭 처리를 분리
- DesignSystem 이미지 에셋에 vote_complete 리소스 추가
- 기존 Image(asset:) 호출 방식에서 사용할 수 있도록 ImageAsset.voteComplete 매핑 추가
- 완료 상태에서 전용 완료 화면을 표시
- voteComplete 에셋, 완료 타이틀, 감사 문구, 결과 안내 문구를 zddci 디자인에 맞춰 배치
- 완료 화면에서는 기존 상단 네비게이션이 유지되도록 단계 분기와 함께 동작
@honghoker honghoker requested a review from Roy-wonji June 16, 2026 18:08
@honghoker honghoker self-assigned this Jun 16, 2026
@honghoker honghoker added ✨ 기능추가 새로운 기능 추가 🎨 디자인 UI 디자인 작업 🐛 버그 버그 수정 labels Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ 기능추가 새로운 기능 추가 🎨 디자인 UI 디자인 작업 🐛 버그 버그 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant