)
}
/**
* 평가 작성 페이지 메인 컴포넌트
*/
export function EvaluationPage() {
const params = useParams()
const router = useRouter()
const [formData, setFormData] = React.useState(null)
const [isLoading, setIsLoading] = React.useState(true)
const [error, setError] = React.useState(null)
const reviewerEvaluationId = params.id ? parseInt(params.id as string) : null
// 평가 데이터 로드
const loadEvaluationData = React.useCallback(async () => {
if (!reviewerEvaluationId) {
setError("잘못된 평가 ID입니다.")
setIsLoading(false)
return
}
try {
setIsLoading(true)
setError(null)
const data = await getEvaluationFormData(reviewerEvaluationId)
if (!data) {
setError("평가 데이터를 찾을 수 없습니다.")
return
}
setFormData(data)
} catch (err) {
console.error('Failed to load evaluation data:', err)
setError(
err instanceof Error
? err.message
: "평가 데이터를 불러오는 중 오류가 발생했습니다."
)
} finally {
setIsLoading(false)
}
}, [reviewerEvaluationId])
// 초기 데이터 로드
React.useEffect(() => {
loadEvaluationData()
}, [loadEvaluationData])
// 평가 완료 후 처리
const handleSubmitSuccess = React.useCallback(() => {
router.push('/evaluations')
}, [router])
// 로딩 상태
if (isLoading) {
return
}
// 에러 상태
if (error) {
return (
)
}
// 데이터가 없는 경우
if (!formData) {
return (
)
}
// 정상 상태 - 평가 폼 렌더링
return (
)
}
// 페이지 컴포넌트용 기본 export
export default function EvaluationPageWrapper() {
return
}