"use client"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { ArrowLeft } from "lucide-react"; import { DepartmentStructure } from "./DepartmentStructure"; import { DepartmentMembers } from "./DepartmentMembers"; import type { Department } from "@/types/department"; import { getCompanyList } from "@/lib/api/company"; interface DepartmentManagementProps { companyCode: string; } /** * 부서 관리 메인 컴포넌트 * 좌측: 부서 구조, 우측: 부서 인원 */ export function DepartmentManagement({ companyCode }: DepartmentManagementProps) { const router = useRouter(); const [selectedDepartment, setSelectedDepartment] = useState(null); const [activeTab, setActiveTab] = useState("structure"); const [companyName, setCompanyName] = useState(""); const [refreshTrigger, setRefreshTrigger] = useState(0); // 부서원 변경 시 부서 구조 새로고침 const handleMemberChange = () => { setRefreshTrigger((prev) => prev + 1); }; // 회사 정보 로드 useEffect(() => { const loadCompanyInfo = async () => { const response = await getCompanyList(); if (response.success && response.data) { const company = response.data.find((c) => c.company_code === companyCode); if (company) { setCompanyName(company.company_name); } } }; loadCompanyInfo(); }, [companyCode]); const handleBackToList = () => { router.push("/admin/userMng/companyList"); }; return (
{/* 상단 헤더: 회사 정보 + 뒤로가기 */}

{companyName || companyCode}

부서 관리

{/* 탭 네비게이션 (모바일용) */}
부서 구조 부서 인원
{/* 좌우 레이아웃 (데스크톱) */}
{/* 좌측: 부서 구조 (20%) */}
{/* 우측: 부서 인원 (80%) */}
); }