From f6b5b78d2d0fb98f30b998304ed2483c50fb880d Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Fri, 18 Apr 2025 12:13:47 +0530 Subject: [PATCH] Add export functionality for employee data in various formats --- src/pages/employee/EmployeeList.jsx | 52 ++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/src/pages/employee/EmployeeList.jsx b/src/pages/employee/EmployeeList.jsx index ab780481..4dc9fd4c 100644 --- a/src/pages/employee/EmployeeList.jsx +++ b/src/pages/employee/EmployeeList.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect,useRef } from "react"; import moment from "moment"; import { Link, NavLink, useNavigate } from "react-router-dom"; import Avatar from "../../components/common/Avatar"; @@ -11,6 +11,7 @@ import { hasUserPermission } from "../../utils/authUtils"; import { MANAGE_EMPLOYEES } from "../../utils/constants"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import SuspendEmp from "../../components/Employee/SuspendEmp"; +import {exportToCSV,exportToExcel,printTable,exportToPDF} from "../../utils/tableExportUtils"; const EmployeeList = () => { const { profile: loginUser } = useProfile(); @@ -101,7 +102,29 @@ const EmployeeList = () => { openModal(); } }, [modelConfig, isCreateModalOpen]); - + const tableRef = useRef(null); + const handleExport = (type) => { + if (!currentItems || currentItems.length === 0) return; + + switch (type) { + case "csv": + exportToCSV(currentItems, "employees"); + break; + case "excel": + exportToExcel(currentItems, "employees"); + break; + case "pdf": + exportToPDF(currentItems, "employees"); // Pass the employeeList directly + break; + case "print": + printTable(tableRef.current); + break; + default: + break; + } + }; + + return ( <> {isCreateModalOpen && ( @@ -198,13 +221,23 @@ const EmployeeList = () => { @@ -237,6 +270,7 @@ const EmployeeList = () => { id="DataTables_Table_0" aria-describedby="DataTables_Table_0_info" style={{ width: "100%" }} + ref={tableRef} >