import { useState } from "react"; import { useSelector } from "react-redux"; import { RootState } from "../../store"; import PtoLeaveTab from './tabs/PtoLeaveTab'; import SickLeaveTab from './tabs/SickLeaveTab'; import AdjustmentTab from './tabs/AdjustmentTab'; import { useNavigate } from "react-router-dom"; type TabType = 'pto' | 'sick' | 'adjustment'; const ApplyLeaveAndAdjustmentsTime = () => { const [activeTab, setActiveTab] = useState('pto'); const [isSubmitting, setIsSubmitting] = useState(false); // NEW const projects = useSelector((state: RootState) => state.projects.projectsData); const navigate = useNavigate() // ------- COMMON API CALL FOR BOTH TABS ------- const submitLeave = async (payload: { dateFrom: string; dateTo: string; leaveType: "PTO" | "SICK"; comment: string; }) => { try { setIsSubmitting(true); console.log("Leave /sick Payload:", payload); const response = await window.electron.createPTOAndSickLeaveRequest(payload) console.log("Leave Payload:", response) if (response.success) { return { success: true }; } return { success: false, message: response.message }; } catch (err) { console.error(err); return { success: false, message: "Request failed" }; } finally { setIsSubmitting(false); } }; const handleBack = () => { navigate('/dashboard/leave-adjustments') } return ( <>

Apply Leave & Adjust Timesheet

{/* Tabs — Disabled while submitting */}
setActiveTab("pto")} > PTO Leave setActiveTab("sick")} > Sick Leave setActiveTab("adjustment")} > Adjustment Submission
{/* Main Container */}
{activeTab === "pto" && ( )} {activeTab === "sick" && ( )} {activeTab === "adjustment" && ( )}
) } export default ApplyLeaveAndAdjustmentsTime