뷰어에서 야드 이름 보여주도록 수정
This commit is contained in:
parent
d473ace18d
commit
f0707f35d8
|
|
@ -31,6 +31,7 @@ interface Yard3DViewerProps {
|
|||
export default function Yard3DViewer({ layoutId }: Yard3DViewerProps) {
|
||||
const [placements, setPlacements] = useState<YardPlacement[]>([]);
|
||||
const [selectedPlacement, setSelectedPlacement] = useState<YardPlacement | null>(null);
|
||||
const [layoutName, setLayoutName] = useState<string>("");
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
|
|
@ -45,27 +46,35 @@ export default function Yard3DViewer({ layoutId }: Yard3DViewerProps) {
|
|||
console.log("selectedPlacement changed:", selectedPlacement?.material_name);
|
||||
}, [selectedPlacement]);
|
||||
|
||||
// 배치 데이터 로드
|
||||
// 야드 레이아웃 및 배치 데이터 로드
|
||||
useEffect(() => {
|
||||
const loadPlacements = async () => {
|
||||
const loadData = async () => {
|
||||
try {
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
const response = await yardLayoutApi.getPlacementsByLayoutId(layoutId);
|
||||
if (response.success) {
|
||||
setPlacements(response.data);
|
||||
|
||||
// 야드 레이아웃 정보 조회
|
||||
const layoutResponse = await yardLayoutApi.getLayoutById(layoutId);
|
||||
if (layoutResponse.success) {
|
||||
setLayoutName(layoutResponse.data.name);
|
||||
}
|
||||
|
||||
// 배치 데이터 조회
|
||||
const placementsResponse = await yardLayoutApi.getPlacementsByLayoutId(layoutId);
|
||||
if (placementsResponse.success) {
|
||||
setPlacements(placementsResponse.data);
|
||||
} else {
|
||||
setError("배치 데이터를 불러올 수 없습니다.");
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("배치 데이터 로드 실패:", err);
|
||||
setError("배치 데이터를 불러오는 중 오류가 발생했습니다.");
|
||||
console.error("데이터 로드 실패:", err);
|
||||
setError("데이터를 불러오는 중 오류가 발생했습니다.");
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
loadPlacements();
|
||||
loadData();
|
||||
}, [layoutId]);
|
||||
|
||||
if (isLoading) {
|
||||
|
|
@ -110,14 +119,20 @@ export default function Yard3DViewer({ layoutId }: Yard3DViewerProps) {
|
|||
onPlacementClick={handlePlacementClick}
|
||||
/>
|
||||
|
||||
{/* 선택된 자재 정보 패널 (오버레이) */}
|
||||
{/* 야드 이름 (좌측 상단) */}
|
||||
{layoutName && (
|
||||
<div className="absolute top-4 left-4 z-50 rounded-lg border border-gray-300 bg-white px-4 py-2 shadow-lg">
|
||||
<h2 className="text-base font-bold text-gray-900">{layoutName}</h2>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* 선택된 자재 정보 패널 (우측 상단) */}
|
||||
{selectedPlacement && (
|
||||
<div className="absolute top-4 right-4 z-50 w-64 rounded-lg border border-gray-300 bg-white p-4 shadow-xl">
|
||||
<div className="mb-3 flex items-center justify-between">
|
||||
<h3 className="text-sm font-semibold text-gray-800">자재 정보</h3>
|
||||
<button
|
||||
onClick={() => {
|
||||
console.log("Close button clicked");
|
||||
setSelectedPlacement(null);
|
||||
}}
|
||||
className="rounded-full p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||
|
|
|
|||
Loading…
Reference in New Issue