)
}
/**
* 평가 작성 페이지 메인 컴포넌트
*/
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)
console.log(`[CLIENT] Loading evaluation data for ID: ${reviewerEvaluationId}`)
const data = await getEvaluationFormData(reviewerEvaluationId)
if (!data) {
console.warn(`[CLIENT] No evaluation data returned for ID: ${reviewerEvaluationId}`)
setError("평가 데이터를 찾을 수 없습니다. 해당 평가가 존재하지 않거나 접근 권한이 없을 수 있습니다.")
return
}
console.log(`[CLIENT] Successfully loaded evaluation data for ID: ${reviewerEvaluationId}`)
setFormData(data as EvaluationFormData)
} catch (err) {
console.error('[CLIENT] Failed to load evaluation data:', err)
const errorMessage = err instanceof Error ? err.message : "알 수 없는 오류"
setError(`평가 데이터를 불러오는 중 오류가 발생했습니다: ${errorMessage}`)
} finally {
setIsLoading(false)
console.log('[CLIENT] Loading completed')
}
}, [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
}