import { useState, useEffect } from "react"; import EmployeeList from "./EmployeeList"; import { useAllEmployees } from "../../hooks/useEmployees"; import showToast from "../../services/toastService"; import { DirectoryRepository } from "../../repositories/DirectoryRepository"; import { useAssignEmpToBucket } from "../../hooks/useDirectory"; const AssignedBucket = ({ selectedBucket, handleClose }) => { const { employeesList } = useAllEmployees(false); const [selectedEmployees, setSelectedEmployees] = useState([]); useEffect(() => { if (selectedBucket) { const preselected = employeesList .filter((emp) => selectedBucket?.employeeIds?.includes(emp.employeeId)) .map((emp) => ({ ...emp, isActive: true })); setSelectedEmployees(preselected); } }, [selectedBucket, employeesList]); const { mutate: AssignEmployee, isPending } = useAssignEmpToBucket(() =>{ setSelectedEmployees([]) handleClose() } ); const handleSubmit = async (e) => { e.preventDefault(); const existingEmployeeIds = selectedBucket?.employeeIds || []; const employeesToUpdate = selectedEmployees.filter((emp) => { const isExisting = existingEmployeeIds.includes(emp.employeeId); return (!isExisting && emp.isActive) || (isExisting && !emp.isActive); }); if (employeesToUpdate.length === 0) { showToast("No changes to update", "info"); return; } AssignEmployee({ bucketId: selectedBucket.id, EmployeePayload: employeesToUpdate.map((emp) => ({ employeeId: emp.employeeId, isActive: emp.isActive, })), }); }; return (
); }; export default AssignedBucket;