"use client"; import { Info } from "lucide-react"; import { useShallow } from "zustand/react/shallow"; import { KisAuthForm } from "@/features/settings/components/KisAuthForm"; import { KisProfileForm } from "@/features/settings/components/KisProfileForm"; import { useKisRuntimeStore } from "@/features/settings/store/use-kis-runtime-store"; /** * @description 설정 페이지 컨테이너입니다. KIS 연결 상태와 인증 폼을 카드 UI로 제공합니다. * @see app/(main)/settings/page.tsx 로그인 확인 후 이 컴포넌트를 렌더링합니다. * @see features/settings/components/KisAuthForm.tsx 실제 인증 입력/검증/해제를 담당합니다. */ export function SettingsContainer() { // 상태 정의: 연결 상태 표시용 전역 인증 상태를 구독합니다. const { verifiedCredentials, isKisVerified, isKisProfileVerified, verifiedAccountNo, } = useKisRuntimeStore( useShallow((state) => ({ verifiedCredentials: state.verifiedCredentials, isKisVerified: state.isKisVerified, isKisProfileVerified: state.isKisProfileVerified, verifiedAccountNo: state.verifiedAccountNo, })), ); return (
{/* ========== STATUS CARD ========== */}

한국투자증권 연결 설정

연결 상태: {isKisVerified ? ( 연결됨 ({verifiedCredentials?.tradingEnv === "real" ? "실전" : "모의"}) ) : ( 미연결 )}
계좌 인증 상태: {isKisProfileVerified ? ( 확인됨 ({maskAccountNo(verifiedAccountNo)}) ) : ( 미확인 )}
{/* ========== PRIVACY NOTICE ========== */}

입력 정보 보관 안내

이 화면에서 입력한 한국투자증권 앱키, 앱시크릿키, 계좌번호는 서버 DB에 저장하지 않습니다. 현재 사용 중인 브라우저(클라이언트)에서만 관리되며, 연결 해제 시 즉시 지울 수 있습니다.

{/* ========== FORM GRID ========== */}
); } /** * @description 계좌번호 마스킹 문자열을 반환합니다. * @param value 계좌번호(8-2) * @returns 마스킹 계좌번호 * @see features/settings/components/SettingsContainer.tsx 프로필 상태 라벨 표시 */ function maskAccountNo(value: string | null) { if (!value) return "-"; const digits = value.replace(/\D/g, ""); if (digits.length !== 10) return "********"; return "********-**"; }