handled local project selection independently to avoid mutating global state
This commit is contained in:
parent
c1da916ca7
commit
488a92e5d1
@ -22,10 +22,11 @@ import {
|
|||||||
import EmployeeRepository from "../../repositories/EmployeeRepository";
|
import EmployeeRepository from "../../repositories/EmployeeRepository";
|
||||||
import ManageEmployee from "../../components/Employee/ManageEmployee";
|
import ManageEmployee from "../../components/Employee/ManageEmployee";
|
||||||
import ConfirmModal from "../../components/common/ConfirmModal";
|
import ConfirmModal from "../../components/common/ConfirmModal";
|
||||||
|
import {useSelector} from "react-redux";
|
||||||
|
|
||||||
const EmployeeList = () => {
|
const EmployeeList = () => {
|
||||||
const { profile: loginUser } = useProfile();
|
const selectedProjectId = useSelector((store) => store.localVariables.projectId);
|
||||||
const [selectedProject, setSelectedProject] = useState("");
|
const [ selectedProject, setSelectedProject ] = useState( () => selectedProjectId || "" );
|
||||||
const { projects, loading: projectLoading } = useProjects();
|
const { projects, loading: projectLoading } = useProjects();
|
||||||
const [showInactive, setShowInactive] = useState(false);
|
const [showInactive, setShowInactive] = useState(false);
|
||||||
const Manage_Employee = useHasUserPermission(MANAGE_EMPLOYEES);
|
const Manage_Employee = useHasUserPermission(MANAGE_EMPLOYEES);
|
||||||
@ -164,7 +165,7 @@ const EmployeeList = () => {
|
|||||||
exportToExcel(currentItems, "employees");
|
exportToExcel(currentItems, "employees");
|
||||||
break;
|
break;
|
||||||
case "pdf":
|
case "pdf":
|
||||||
exportToPDF(currentItems, "employees"); // Pass the employeeList directly
|
exportToPDF(currentItems, "employees");
|
||||||
break;
|
break;
|
||||||
case "print":
|
case "print":
|
||||||
printTable(tableRef.current);
|
printTable(tableRef.current);
|
||||||
@ -190,6 +191,14 @@ const EmployeeList = () => {
|
|||||||
setIsDeleteModalOpen(true);
|
setIsDeleteModalOpen(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleProjectSelection = (e) => {
|
||||||
|
setSelectedProject(e.target.value);
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
setSelectedProject(selectedProjectId || "");
|
||||||
|
}, [selectedProjectId]);
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{isCreateModalOpen && (
|
{isCreateModalOpen && (
|
||||||
@ -262,36 +271,31 @@ const EmployeeList = () => {
|
|||||||
className="dataTables_length text-start"
|
className="dataTables_length text-start"
|
||||||
id="DataTables_Table_0_length"
|
id="DataTables_Table_0_length"
|
||||||
>
|
>
|
||||||
<label>
|
<label>
|
||||||
<select
|
<select
|
||||||
id="project-select"
|
id="project-select"
|
||||||
onChange={(e) => setSelectedProject(e.target.value)}
|
onChange={handleProjectSelection}
|
||||||
name="DataTables_Table_0_length"
|
name="DataTables_Table_0_length"
|
||||||
aria-controls="DataTables_Table_0"
|
aria-controls="DataTables_Table_0"
|
||||||
className="form-select form-select-sm"
|
className="form-select form-select-sm"
|
||||||
value={selectedProject || ""}
|
value={selectedProject}
|
||||||
>
|
>
|
||||||
{projectLoading ? (
|
{projectLoading ? (
|
||||||
<option value="Loading">Loading...</option>
|
<option value="Loading">Loading...</option>
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<option value="">All Employees</option>
|
<option value="">All Employees</option>
|
||||||
{Array.isArray(projects) &&
|
{Array.isArray(projects) &&
|
||||||
projects
|
projects.map((item) => (
|
||||||
.filter((item) =>
|
<option key={item.id} value={item.id}>
|
||||||
loginUser?.projects?.includes(
|
{item.name}
|
||||||
String(item.id)
|
</option>
|
||||||
)
|
))}
|
||||||
)
|
</>
|
||||||
.map((item) => (
|
)}
|
||||||
<option key={item.id} value={item.id}>
|
</select>
|
||||||
{item.name}
|
</label>
|
||||||
</option>
|
|
||||||
))}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</select>
|
|
||||||
</label>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user