"use client"; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import Image from 'next/image'; import { isAdminLoggedIn } from '../lib/auth'; import LoginPage from './login/page'; import Header from './components/Header'; const imgImage2 = "http://localhost:3845/assets/89fda8e949171025b1232bae70fc9d442e4e70c8.png"; const imgImage7 = "http://localhost:3845/assets/a4e4d09643b890b56084560cc24d6e532a03487b.png"; const imgLine2 = "http://localhost:3845/assets/6ee8cf4ebb6bc2adb14aab8c9940b3002c20af35.svg"; const imgFrame2616314 = "http://localhost:3845/assets/17f021e324ee315bdf2fe96554a2260813957042.svg"; const imgRectangle1737 = "http://localhost:3845/assets/ae523ea10901c105fdbfda27ed21dd658fc4a7c2.png"; const imgRectangle1738 = "http://localhost:3845/assets/50e850999bbdd551763a187d402169c28ffecec5.png"; export default function HomePage() { const router = useRouter(); const [isLoggedIn, setIsLoggedIn] = useState(false); const [isAdmin, setIsAdmin] = useState(false); const [isLoading, setIsLoading] = useState(true); const [currentHeroSlide, setCurrentHeroSlide] = useState(0); // 임시 데이터 - 실제로는 API에서 가져올 데이터 const [courses, setCourses] = useState([ { id: 1, title: '원자로 운전 및 계통', image: imgRectangle1737 }, { id: 2, title: '핵 연료', image: imgRectangle1738 }, { id: 3, title: '방사선 안전', image: imgRectangle1737 }, { id: 4, title: '방사성 폐기물', image: imgRectangle1737 }, ]); const [myCourses, setMyCourses] = useState([ { id: 1, title: '원자로 기본 원리와 주요 계통 이해 - 이론 1', date: '2025-12-12(화)' }, { id: 2, title: '원자로 기동 및 정상운전 절차 - 이론2', date: '2025-12-12(화)' }, { id: 3, title: '비상 시 운전원 조치와 안전 계통 운용', date: '2025-12-12(화)' }, { id: 4, title: '운전 사례 분석 및 시뮬레이션 실습', date: '2025-12-12(화)' }, { id: 5, title: '핵분열과 핵연로 주기 이해', date: '2025-12-12(화)' }, { id: 6, title: '핵연료 제조 공정 및 특성', date: '2025-12-12(화)' }, { id: 7, title: '핵연로 성능 평가와 열수력 해석', date: '2025-12-12(화)' }, ]); const [notices, setNotices] = useState([ { id: 1, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 2, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 3, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 4, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 5, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 6, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 7, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 8, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 9, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, { id: 10, title: '[점검] 방사선 폐기 VR 실습 서버 정기점검 안내', date: '2025-12-12(화)' }, ]); useEffect(() => { // 로그인 상태 확인 const loginStatus = localStorage.getItem('isLoggedIn') === 'true'; const adminStatus = isAdminLoggedIn(); setIsLoggedIn(loginStatus); setIsAdmin(adminStatus); setIsLoading(false); // 관리자일 경우 admin_home 페이지로 리다이렉트 if (adminStatus) { router.push('/admin_home'); } }, [router]); if (isLoading) { return null; // 로딩 중 } // 로그인되지 않았으면 로그인 페이지 표시 if (!isLoggedIn) { return ; } // 관리자일 경우 리다이렉트 중 if (isAdmin) { return null; } // 일반 사용자일 경우 기존 메인 페이지 표시 return (
{/* 헤더 */}
{/* 구분선 */}
{/* Hero 배너 */}
{/* TODO: DB에서 이미지를 가져와서 표시 */}
{/* 전체 교육 과정 (4개) */}

전체 교육 과정 ({courses.length}개)

{/* Hero 배너 인디케이터 버튼 */}
{[0, 1, 2, 3].map((index) => (
{/* 교육 과정 카드들 - 데이터가 있을 때 */} {courses.length > 0 ? (
{courses.map((course) => (
{course.image ? ( ) : null}

{course.title}

))}
) : ( /* 등록된 교육 과정이 없습니다 메시지 - 데이터가 없을 때 */

등록된 교육 과정이 없습니다.

)} {/* 나의 수강 강좌 목록 */}

나의 수강 강좌 목록 ({myCourses.length}개)

{myCourses.length > 0 ? ( myCourses.map((course) => (

{course.title}

{course.date}

)) ) : (

수강 중인 강좌가 없습니다.

)}
{/* 공지사항 */}

공지사항

{notices.length > 0 ? ( notices.map((notice) => (

{notice.title}

{notice.date}

)) ) : (

등록된 공지사항이 없습니다.

)}
{/* 공지사항 하단 여백 (공지사항 최하단: 1213 + 제목영역 + gap + 박스높이 + 199px) */}
); }