import { parse } from "iso8601-duration" import React, { useEffect, useState } from "react" import InputField from "../input" type AvailabilityDurationProps = { onChange: React.Dispatch> value: string | undefined } const getValue = (e: React.ChangeEvent) => parseFloat(e.target.value) const AvailabilityDuration: React.FC = ({ value, onChange, }) => { const duration = value ? parse(value) : {} const [durationYears, setDurationYears] = useState(duration.years || 0) const [durationMonths, setDurationMonths] = useState(duration.months || 0) const [durationDays, setDurationDays] = useState(duration.days || 0) const [durationHours, setDurationHours] = useState(duration.hours || 0) const [durationMinutes, setDurationMinutes] = useState(duration.minutes || 0) useEffect(() => { const isoString = `P${durationYears || 0}Y${durationMonths || 0}M${ durationDays || 0 }DT${durationHours || 0}H${durationMinutes || 0}M` onChange(isoString) }, [ durationYears, durationMonths, durationDays, durationHours, durationMinutes, ]) return (
setDurationYears(getValue(e))} min={0} /> setDurationMonths(getValue(e))} min={0} /> setDurationDays(getValue(e))} min={0} /> setDurationHours(getValue(e))} min={0} /> setDurationMinutes(getValue(e))} min={0} />
) } export default AvailabilityDuration