## DOBPicker
DOBPicker is a customizable Date of Birth picker component for React Native, built using react-native-paper and react-native-modal-datetime-picker. It allows users to select a date and time using a modal date picker, with additional support for custom icons and text input handling.

## Installation
Ensure you have react-native-paper and react-native-modal-datetime-picker installed in your project. If not, install them first:

npm install react-native-paper react-native-modal-datetime-picker date-fns

Then, install DOBPicker by adding it to your project:

npm install react-native-customtextinput

## Usage
Import and use the DOBPicker component in your React Native project:

import React, { useState } from 'react';

import { View, Image } from 'react-native';

import DOBPicker from 'react-native-customtextinput';

const App = () => {

  const [selectedDate, setSelectedDate] = useState<Date | undefined>();

  return (

    <View style={{ padding: 20 }}>

      <DOBPicker
        label="Date of Birth"
        onDateChange={handleDateChange}
        dateFormat="yyyy-MM-dd"
        calendarIcon={require('./assets/calendar.png')}
        clearIcon={require('./assets/clear.png')}
        rightCalendarIconStyle={{ width: 30, height: 30, tintColor: 'blue' }}
        Icon={require('./assets/user.png')}
        leftIconStyle={{ width: 25, height: 25, tintColor: 'green' }}
      />
      
    </View>

  );
};

export default App;

## Props

| Prop Name             | Type                               | Default               | Description                                                   |
|-----------------------|------------------------------------|-----------------------|---------------------------------------------------------------|
| `label`               | `string`                           | `undefined`           | Label for the text input field.                               |
| `value`               | `string`                           | `undefined`           | The value displayed in the input field.                       |
| `Icon`                | `ImageSourcePropType`              | `undefined`           | Optional left-side icon.                                      |
| `calendarIcon`        | `ImageSourcePropType`              | Required              | Calendar icon for the date picker.                            |
| `clearIcon`           | `ImageSourcePropType`              | `undefined`           | Clear icon to reset the selected date.                        |
| `onDateChange`        | `(selectedDate: Date / undefined) => void` | Required              | Callback when the date is selected or cleared.               |
| `dateFormat`          | `string`                           | `'dd/MM/yyyy h:mm'`  | Format for displaying the selected date.                     |
| `onClear`             | `() => void`                       | `undefined`           | Callback when the clear button is pressed.                    |
| `returnKeyType`       | `'done' / 'next'`                 | `undefined`           | Return key type for the keyboard.                             |
| `onSubmitEditing`     | `() => void`                       | `undefined`           | Callback when submitting the input field.                    |
| `forwardRef`          | `Ref<RNTextInput>`                | `undefined`           | Forwarded reference to the input field.                       |
| `textColor`           | `string`                           | `'black'`             | Color of the text in the input field.                         |
| `placeholderTextColor`| `string`                           | `'black'`             | Color of the placeholder text.                                |
| `mode`                | `'flat' / 'outlined'`             | `'outlined'`          | Mode of the TextInput component from react-native-paper.     |
| `rightCalendarIconStyle`| `StyleProp<ImageStyle>`         | `undefined`           | Style for the right calendar/clear icon.                     |
| `leftIconStyle`      | `StyleProp<ImageStyle>`            | `undefined`           | Style for the left icon.                                      |
| `datetimeMode`       | `'date' / 'time' / 'datetime'`    | `'datetime'`          | Mode for the DateTimePickerModal (date, time, or datetime).  |

## Features
Displays a modal date and time picker.

Customizable icons for calendar and clear actions.

Prevents direct text input to ensure valid date selection.

Uses date-fns for date formatting and parsing.

Supports React Native Paper's theming.