[Feat/#25] 행사 신청 폼 화면 구현 - #29
Open
sangrae2325 wants to merge 15 commits into
Open
Conversation
sangrae2325
marked this pull request as ready for review
September 12, 2026 14:55
github-actions
Bot
requested review from
jjunh33,
leegain1,
tnals0924 and
xeoxxn
September 12, 2026 14:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#️⃣연관된 이슈
🎯 해결하려는 문제가 무엇인가요?
행사 신청서 작성 화면이 없었습니다. 문항은 관리자가 행사마다 설정하기 때문에, 화면을 고정된 폼으로 짜면 안 되고 문항 목록 데이터를 받아 유형별로 렌더링하는 구조가 필요합니다.
❓ 왜 해결해야 하나요?
행사 신청 플로우(Figma
1165:63390)의 첫 화면입니다. 이후 작업인 신청 확인 모달, 제출 로딩, 완료·마감 페이지가 전부 이 화면 위에 붙기 때문에, 폼과 검증 구조를 먼저 잡아야 다음 이슈를 진행할 수 있습니다.⭐ 어떻게 해결했나요?
ScreenLayout에hasBottomNav옵션 추가: 하단 탭 대신 제출 버튼이 있는 화면을 위한 라우트 그룹을 나눴습니다. 기본값이true라 기존 화면은 그대로입니다.features/events/구성: 화면(EventsApplicationScreen)이 답변 상태와 검증을 전부 들고, 컴포넌트(EventsSummaryCard,EventsQuestionField)는 그리기만 합니다.question.type(복수 선택 / 단일 선택 / 단답형 50자 / 장문형 500자)으로 분기합니다. 카드 틀·제목·필수*가 공통이라 컨벤션대로 유니온 타입 하나로 뒀습니다.TextArea의width/minRows기본값을 맞췄습니다. 근거는docs/conventions/wds-component-usage.md에 기록했습니다./figma-check로 새 프레임(1658:183386)과 교차검증했고, 색상 하드코딩 없이 5개 항목 모두 일치합니다.동작화면: https://github.com/user-attachments/assets/06811a4c-f993-45b8-8106-44bfe4e2c9f6
🧩 이 PR의 한계 & 트레이드오프
navigate(-1)이 앱 밖으로 나갑니다. 진입 동선이 생기고 중단 모달을 붙일 때 함께 처리하려고 남겨뒀습니다.eventId는 아직 쓰지 않습니다. 선택지 문구와 단답형 문항은 Figma에 없어 임의로 채웠습니다.ActionAreaButton의 세로 padding을sx로 덮어썼습니다. WDS에 56px 크기가 없어서인데, WDS 내부 스타일을 건드리는 방식입니다.⛓️ 기존 기능에 미치는 영향
ScreenLayout은 prop 하나가 추가됐고 기본값이 기존 동작이라, 홈·빌릴게 화면은 영향이 없습니다(하단 탭이 그대로 뜨는 것을 브라우저로 확인).index.css에 색상 토큰--color-background-elevated-normal하나를 추가했습니다. WDS 변수를 연결한 것이라 다크 테마도 따라갑니다.🔀 Edge Case & 실패 시나리오
fieldset에min-w-0을 줬습니다.📋 검토한 대안과 선택 이유
component-convention.md규칙). 기타 입력 등으로 더 커지면 그때 나눕니다.*: WDSLabel required는 색은 같지만*크기가 14px로 고정이라 Figma(16px Bold)와 달라서Typography로 직접 그렸습니다.TextField는 테두리 있는 박스형이라 Figma의 밑줄 형태와 달라<input>으로 만들었습니다.💬 리뷰 포인트
[r]복수 선택 답변 타입을{ selected, otherText }객체로 바꿨습니다. 백엔드 스펙이 나오면 맞춰야 하는 부분이라 형태를 봐주세요.[c]ActionAreaButton의sx오버라이드. 같은 문제로 빌릴게 대여 바텀시트 버튼도 Figma는 56px인데 48px로 렌더링됩니다(이 PR 범위 밖이라wds-component-usage.md에 기록만 해뒀습니다).[a]목업의 선택지 문구와 단답형 문항은 임의로 채운 값입니다.