import React, { useEffect, useState } from 'react'; import { Box, Typography, FormControl, InputLabel, Select, MenuItem, Button, CircularProgress, Alert } from '@mui/material'; import { fetchJobs } from '../api'; import { useNavigate } from 'react-router-dom'; const JobSelectionPage = () => { const [jobs, setJobs] = useState([]); const [selectedJobNo, setSelectedJobNo] = useState(''); const [selectedJobName, setSelectedJobName] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const navigate = useNavigate(); useEffect(() => { async function loadJobs() { setLoading(true); setError(''); try { const res = await fetchJobs({}); if (res.data && Array.isArray(res.data.jobs)) { setJobs(res.data.jobs); } else { setJobs([]); } } catch (e) { setError('프로젝트 목록을 불러오지 못했습니다.'); } finally { setLoading(false); } } loadJobs(); }, []); const handleSelect = (e) => { const jobNo = e.target.value; setSelectedJobNo(jobNo); const job = jobs.find(j => j.job_no === jobNo); setSelectedJobName(job ? job.job_name : ''); }; const handleConfirm = () => { if (selectedJobNo && selectedJobName) { navigate(`/bom-status?job_no=${selectedJobNo}&job_name=${encodeURIComponent(selectedJobName)}`); } }; return ( 프로젝트 선택 {loading && } {error && {error}} 프로젝트 {selectedJobNo && ( 선택된 프로젝트: {selectedJobNo} ({selectedJobName}) )} ); }; export default JobSelectionPage;