status, page_id, related_pages, last_updated
| status |
page_id |
related_pages |
last_updated |
| stable |
A08_Support |
|
2026-07-12 |
A08_Support — Frontend
기술지원 문의 폼. 이름·이메일·연락처·제목·문의내용(textarea) 입력 후 제출.
파일 구조
| 파일 |
위치 |
역할 |
A08_Support_UI_Page.ts |
A08_Support/A08_Support_UI_Page.ts:1-217 |
문의 폼 렌더링 + 제출 로직 |
A08_Support_UI_Style.css |
A08_Support/A08_Support_UI_Style.css:1-64 |
스타일 (theme.css 변수만 사용) |
컴포넌트 / 함수
| 함수 |
위치 |
역할 |
renderA08Support(root) |
A08_Support/A08_Support_UI_Page.ts:69 |
카드+폼 조립, 세션 정보 자동 채움 |
onA08_Support_Submit_Click(event) |
A08_Support/A08_Support_UI_Page.ts:133 |
제출 핸들러(검증→fetch POST) |
createTextAreaField(label, placeholder) |
A08_Support/A08_Support_UI_Page.ts:32 |
여러 줄 textarea 필드(에러 슬롯 포함) 생성 |
제출 로직
- 필수값 검사(name/email/subject/message), 이메일 형식 검사
fetch("/api/a08/support", POST) 직접 호출 (별도 Api_Fetch 파일 없음)
- 성공: 폼 리셋 + 성공 메시지(
A08_Support_Success) 표시
- 실패: nameField에 오류 메시지 표시
세션 자동 채움
로컬라이제이션
모든 텍스트는 ui_templates에서 로드. 하드코딩 금지.
| UI 요소 |
로케일 키 |
| 제목/부제 |
A08_Support_Title, A08_Support_Subtitle |
| 필드 |
A08_Support_Field_Name, _Email, _Phone, _Subject, _Message (+각 Placeholder) |
| 제출 |
A08_Support_Submit |
| 성공 |
A08_Support_Success |
| 오류 |
A08_Support_Error_Required, A08_Support_Error_Email |
스타일 (CSS)
.a08-support__card — 카드 (max-width: 520px)
.a08-support__success — 성공 메시지(success 색, mist-violet 배경), 기본 hidden
.a08-support__form — flex 열 (gap: spacing-16)
.a08-support__textarea — resize vertical, min-height 120px
.a08-support__submit — 전체 너비 버튼
이벤트 핸들러
| 함수 |
위치 |
동작 |
onA08_Support_Submit_Click() |
A08_Support/A08_Support_UI_Page.ts:133 |
문의 검증·제출 |
의존성
참고
- 문의 폼은 로그인/비로그인 모두 사용 가능 (세션 있으면 name/email 자동 입력)
- textarea는 공통 컴포넌트에 없어
createTextAreaField로 자체 구현 (.ui-field/.ui-input 스타일 상속)