diff --git a/src/components/common/DatePicker.jsx b/src/components/common/DatePicker.jsx new file mode 100644 index 00000000..d4a1b22f --- /dev/null +++ b/src/components/common/DatePicker.jsx @@ -0,0 +1,42 @@ +import React, { useEffect, useRef } from "react"; + +const DatePicker = ({ onDateChange }) => { + const inputRef = useRef(null); + + useEffect(() => { + const fp = flatpickr(inputRef.current, { + dateFormat: "Y-m-d", + defaultDate: new Date(), + onChange: (selectedDates, dateStr) => { + console.log("Selected date:", dateStr); + if (onDateChange) { + onDateChange(dateStr); // Pass selected date to parent + } + } + }); + + return () => { + // Cleanup flatpickr instance + fp.destroy(); + }; + }, [onDateChange]); + + return ( +
+
+ + +
+
+ ); +}; + +export default DatePicker; diff --git a/src/components/common/DateRangePicker.jsx b/src/components/common/DateRangePicker.jsx new file mode 100644 index 00000000..f2d797a7 --- /dev/null +++ b/src/components/common/DateRangePicker.jsx @@ -0,0 +1,35 @@ +import React, { useEffect, useRef } from 'react'; + +const DateRangePicker = ({ onRangeChange }) => { + const inputRef = useRef(null); + + useEffect(() => { + const fp = flatpickr(inputRef.current, { + mode: "range", + dateFormat: "Y-m-d", + static: true, + clickOpens: true, + onChange: (selectedDates, dateStr) => { + const [startDate, endDate] = dateStr.split(" to "); + onRangeChange?.({ startDate, endDate }); + } + }); + + return () => { + // Cleanup Flatpickr instance + fp.destroy(); + }; + }, [onRangeChange]); + + return ( + + ); +}; + +export default DateRangePicker;