import React, { ChangeEventHandler, useRef, useState } from "react"; import { format, isValid, parse, parseISO } from "date-fns"; import FocusTrap from "focus-trap-react"; import { DayPicker, SelectSingleEventHandler } from "react-day-picker"; import { usePopper } from "react-popper"; export const DatePickerDialog = (props) => { console.log(props); const { setter, apiAction } = props; const [selected, setSelected] = useState(); const [isPopperOpen, setIsPopperOpen] = useState(false); const popperRef = useRef(null); const buttonRef = useRef(null); const [popperElement, setPopperElement] = useState( null, ); const customStyles = { container: { // Style for the entire container border: "1px solid #ccc", borderRadius: "4px", padding: "10px", width: "300px", }, day: { // Style for individual days padding: "5px", margin: "2px", }, selected: { // Style for selected days backgroundColor: "#007bff", color: "#fff", }, disabled: { // Style for disabled days color: "#ccc", }, today: { // Style for today's date backgroundColor: "#f0f0f0", }, dayWrapper: { // Style for the wrapper around each day display: "inline-block", }, }; const popper = usePopper(popperRef.current, popperElement, { placement: "bottom-start", }); const closePopper = () => { setIsPopperOpen(false); buttonRef?.current?.focus(); }; const handleButtonClick = () => { setIsPopperOpen(true); }; const handleDaySelect: SelectSingleEventHandler = (date) => { setSelected(date); if (date) { setter(format(date, "M-dd-yyyy")); apiAction(); closePopper(); } else { setter(""); } }; return (
{isPopperOpen && (
)}
); }; export default DatePickerDialog;