Skip to content

[ARCHIVED 2026-08-19] 역사 자료 — 현행 규범이 아니다. 아카이브 사유와 대체 문서는 docs/README.md의 Archive 섹션을 참조. 재작성된 현행 계약: docs/contracts/profile-screen-props.md.

ProfileScreen (내 정보) Props Contract

Updated: 2026-06-09

Claude: src/react/ui/screens/ProfileScreen.jsx (export window.UiProfileScreen, stateless). Codex: 컨테이너·인증·내보내기/가져오기·Supabase.

Props

jsx
<UiProfileScreen
  profile={profile}        // { name, short, meta }
  onExport={onExport}      // () => MaybePromise   기록 파일로 내보내기
  onImport={onImport}      // (file: File) => MaybePromise  백업 파일 복원. 2026-06-10 현재 컨테이너는 "준비 중" 응답만 제공.
  onLogout={onLogout}      // () => MaybePromise
/>

Types

ts
type Profile = { name: string; short: string; meta?: string };

UI-Local / Persistence

  • UI-local: 없음(거의 stateless). 다이얼로그가 생기면 ui에서 관리.
  • Codex 소유: 실제 export/import(파일 I/O)·logout(세션 종료)·프로필 데이터 hydration. UI는 Supabase/storage import 안 함.
  • 현재 ProfileScreen.jsx 계약에는 import 버튼 disabled prop이 없다. UI 마크업을 변경하지 않는 범위에서는 Codex가 onImport에서 "준비 중" 처리만 한다.

data-lg-* 마커 (designContract.js 등록명)

mobileProfileView(view dashboard.profile), mobileExportButton(profile.export), mobileImportButton(profile.import), importFile(field profile.importFile), mobileLogoutButton(profile.logout) → 새 마커 없음.