@mvp-rockets/namma-generator
Version:
A generator to generate mvp-rockets projects
81 lines (73 loc) • 2.17 kB
JavaScript
import PropTypes from "prop-types";
import { useState } from "react";
import ReactDatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
const DatePicker = ({
isError,
errorClass,
isDisabled,
register,
id,
placeholder,
isRequired,
name,
dbName,
value,
autocomplete,
autofocus,
errorMessage,
...rest
}) => {
const [selectedDate, setSelectedDate] = useState(new Date());
const handleDateChange = (date) => {
setSelectedDate(date);
};
return (
<div className="relative">
<ReactDatePicker
onChange={handleDateChange}
selected={selectedDate}
placeholderText={placeholder}
disabled={isDisabled}
required={isRequired}
autoComplete={autocomplete}
autoFocus={autofocus}
id={id}
name={name}
{...(register && { ...register(dbName) })}
value={value}
className={`bg-white border w-full text-neutral-900 leading-[18px] outline-none appearance-none cursor-pointer py-2.5 px-4 rounded-lg placeholder-neutral-400 disabled:bg-neutral-100 disabled:border-neutral-300
${isError ? "border-error-100 hover:border-error-100 focus:border-error-100" : 'border-neutral-200 hover:border-neutral-500 focus-within:border-primary-900 focus:border-primary-900'} `}
{...rest}
/>
{isError && (
<span className={`text-error-100 pl-0.5 text-sm pt-2 font-normal leading-[21px] select-none`}>{errorMessage}</span>
)}
</div>
);
};
DatePicker.defaultProps = {
isDisabled: false,
isRequired: false,
isError: false,
autocomplete: "off",
autofocus: false,
placeholder :"DD/MM/YY",
name : "Date picker",
};
DatePicker.propTypes = {
id: PropTypes.string,
name: PropTypes.string,
placeholder: PropTypes.string,
isDisabled: PropTypes.bool,
isRequired: PropTypes.bool,
isError: PropTypes.bool,
register: PropTypes.func,
autocomplete: PropTypes.oneOf(["on", "off"]),
autofocus: PropTypes.bool,
dbName: PropTypes.string,
value: PropTypes.string,
errorClass: PropTypes.string,
errorMessage: PropTypes.string,
};
export default DatePicker;