function AddVacation()

in event-driven-developers-tale/src/components/AddVacation.js [6:57]


function AddVacation({ emmiter }) {

    const [description, setDescription] = useState("")
    const [category, setCategory] = useState("")
    const [startDate, setStartDate] = useState(moment().format("YYYY-MM-DD"))
    const [endDate, setEndDate] = useState(moment().format("YYYY-MM-DD"))
    
    const categories = {
        ANNUAL_LEAVE: "Annual Leave",
        PUBLIC_HOLIDAYS: "Public Holidays",
        SICK_LEAVE: "Sick Leave",
        PATERNITY_LEAVE: "Patternity Leave",
        ADOPTIVE_LEAVE: "Adoptive Leave",
        CARERS_LEAVE: "Carer's Leave",
        PARENTAL_LEAVE: "Parental Leave"
    }

    useEffect(() => {
        setCategory("ANNUAL_LEAVE")
    }, [])

    async function addVacation() {
        const newVacationRequest = {
            description: description,
            approvalStatus: "PENDING_VALIDATION",
            category: `${category}`,
            startDate: `${startDate}Z`,
            endDate: `${endDate}Z`
        }

        await API.graphql({
            query: submitVacationRequest,
            variables: {
                input: newVacationRequest
            },
            authMode: 'AMAZON_COGNITO_USER_POOLS'
        })

        emmiter.emit("showModal", false, "", "", null)        
    }

    function cancel() {
        emmiter.emit("showModal", false, "", "", null)
    }

    return (

        <div className="space-y-3 h-full flex flex-col">
            <div className="flex-grow">
                <div className=" pt-4 px-4">
                    <label className="block border-gray-600">Description</label>
                    <input className="w-full border-gray-100 border-2 rounded p-1" type="text" onChange={(event) => setDescription(event.target.value)} />