Mi proyecto es un formulario que los usuarios completan para reservar inspecciones. Tengo un calendario de reacción que usan para elegir una fecha de inspección. Necesito el calendario para hacer que todos los días antes de la fecha actual y todos los fines de semana futuros estén inactivos (por lo que solo se puede hacer clic en los días hábiles en el futuro. Luego, dependiendo de la entrada del usuario (una selección de una lista de posibles tipos de inspección) el calendario para hacer el primer día disponible 1 o 2 días en el futuro.
Me las arreglé para filtrar los fines de semana futuros y el accesorio minDate incorporado se asegura de que todos los días antes de la fecha actual estén inactivos, pero mi filtrado sigue siendo defectuoso. Se salta 7 días en lugar de 2 días. Por favor ayuda.
const [date, setDate] = useState(new Date()); const dateFormatted = format(date, "yyyy/MM/dd"); const dateSelected = date =>{ date.toLocaleDateString(); setDate(date); }; //This is how I get id value of the different inspectiuon types const [enquiryType, setEnquiryType] = useState('0'); const handleSelect = (event) => { const index = event.target.selectedIndex; const optionElement = event.target.childNodes[index]; const optionElementId = optionElement.getAttribute('id'); setEnquiryType(optionElementId); } const singleDay = addDays(date, 1); const doubleDays = addDays(date, 2); const calcDays = () => { if (enquiryType === '0'){ return new Date(); } else if (enquiryType === '1'){ return singleDay; } else if (enquiryType === '2'){ return doubleDays; } } <Calendar tileDisabled={({ date }) => date.getDay() === 0 || date.getDay() === 6} prev2AriaLabel={null} prev2Label={null} next2Label={null} locale={null} showNeighboringMonth={false} minDetail="month" minDate={calcDays()} value={date} onClickDay={dateSelected} //onChange={dateSelected} />