import React, { 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'; type TabType = 'pto' | 'sick' | 'adjustment'; const LeaveAndAdjustments: React.FC = () => { const [activeTab, setActiveTab] = useState('pto'); const [isSubmitting, setIsSubmitting] = useState(false); // 🚀 NEW const projects = useSelector((state: RootState) => state.projects.projectsData); // ------- 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); } }; return (

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 LeaveAndAdjustments;