/* ============================================================================
* 서명전에 — iOS Home Tab
* ========================================================================== */
function HomeScreen({
onNewAnalysis,
onOpenChooser,
onOpenRecent,
onOpenBilling,
onSeeAllRecents,
credits = 0,
unlimited = false,
recents: recentsProp,
historyLoading = false,
hasSession = false,
userName = null,
}) {
const scrollRef = useRef(null);
const [scrolled, setScrolled] = useState(false);
const onScroll = (e) => setScrolled(e.currentTarget.scrollTop > 8);
const MOCK_RECENTS = [
{ id: "r1", type: "jeonse", title: "전세계약서_202604.pdf", sev: "alert", high: 3, when: "4월 20일" },
{ id: "r3", type: "wolsae", title: "월세계약서_202603.pdf", sev: "warn", high: 2, when: "3월 30일" },
{ id: "r4", type: "jeonse", title: "원룸전세_구로동.pdf", sev: "safe", high: 0, when: "3월 12일" },
];
/* 서버 히스토리가 있으면 우선 노출, 없으면 목업으로 폴백 (로딩 중에는 비운다) */
const hasReal = Array.isArray(recentsProp) && recentsProp.length > 0;
const recents = hasReal ? recentsProp : MOCK_RECENTS;
const showEmpty = hasSession && !historyLoading && Array.isArray(recentsProp) && recentsProp.length === 0;
const thumbClass = (sev) => "recent__thumb recent__thumb--" + sev;
/* userName 이 있을 때만 "X님" 인사. 없으면 그냥 "안녕하세요" 로 generic.
이전엔 "지현" 으로 하드코딩 폴백 → 토스 hash 사용자(email 없음) 에게 가짜
이름 보여 오해 유발. 토스 SDK 가 nickname 제공하기 시작하면 그쪽에서
userName prop 으로 흘려주면 됨. */
return (
{userName ? `안녕하세요, ${userName}님` : "안녕하세요"}
서명 전에 한 번 더 살펴봐요
AI 계약서 분석
사진 한 장으로 불리한 조항을 찾아드려요
전세 · 월세 임대차법령 기준으로 자동 검토
{/* Hero CTA — 카메라로 직결했다가 사용자가 "카메라 / 파일 / 텍스트
중에서 고를 수 있는 창으로 보내달라" 요청. FAB 과 동일한 공용
업로드 시트(uploadSheet) 로 연결. onOpenChooser 가 없으면 폴백으로
기존처럼 카메라 kind 로 감. */}
{/* 원본 파일 권장 배너 — 사용자 피드백 "방법론을 말해줬으면 좋겠어".
"원본 받으세요" 만으론 추상적이라 **공인중개사에게 PDF 로 보내달라
요청하라** 는 구체적 액션 가이드까지 명시. hero 와 업로드 버튼
사이라 시선이 CTA 로 향하는 길목에서 반드시 보게 됨. */}
💡
공인중개사에게 PDF 파일을 받아 올려주세요
사진으로 찍은 계약서는 글자 인식이 떨어져요.
중개사에게 "계약서 PDF 파일로 보내주세요" 라고 요청하시면
정확하게 분석해 드릴 수 있어요.
📩 카톡·문자·이메일 어느 쪽이든 PDF 로 받으면 OK
📝 전자계약이면 한방·KB부동산 등에서 PDF 다운로드 가능
{/* 빠른 진입 — 2-col 그리드에 paste 카드를 span 으로 깔아 한 컨테이너로 통합.
이전엔 별도 row + 음수 margin (-14px) 으로 붙였지만, grid gap 이 자동으로
줄간격을 맞춰주므로 더 견고하고 시각적 정렬감이 좋다. */}