'use client';

import { useState } from 'react';
import { Button } from '@/components/ui/button';
import type { StudentMember } from '@/lib/domain/student-member';
import { StudentDetailModal } from './student-detail-modal';

interface StudentRowActionsProps {
  member: StudentMember;
}

/**
 * 목록 행의 "관리" 셀 — 조회 팝업의 열림 상태만 소유하는 최말단 상호작용 경계다(테이블 전체를
 * 클라이언트로 내리지 않기 위해 이 셀만 분리했다 — §2.4 "'use client'는 최말단에만"). 팝업에
 * 필요한 데이터는 이미 이 행이 갖고 있는 member를 그대로 전달한다(재조회 없음).
 *
 * 기획 시안은 "돋보기 아이콘 버튼"을 지정하지만 `components/ui/icons/`에 아직 돋보기 아이콘이
 * 없다(신규 아이콘 추가는 공용 컴포넌트 신설이라 design 레인 소관, §4.2). 로직 우선 단계라
 * 아이콘 대신 텍스트 버튼("조회")으로 대체했고, 아이콘 부재는 별도로 보고한다.
 */
export function StudentRowActions({ member }: StudentRowActionsProps) {
  const [isDetailOpen, setIsDetailOpen] = useState(false);

  return (
    <>
      <Button
        type="button"
        variant="ghost"
        size="sm"
        onClick={() => setIsDetailOpen(true)}
      >
        조회
      </Button>
      {isDetailOpen && (
        <StudentDetailModal
          member={member}
          onClose={() => setIsDetailOpen(false)}
        />
      )}
    </>
  );
}
