UNPKG

react-native-ui-datepicker-custom-v2

Version:
141 lines (107 loc) 9.79 kB
![react-native-ui-datepicker](https://user-images.githubusercontent.com/7857656/227187674-93012672-495d-4955-b4d3-46c3d016684e.jpg) --- # react-native-ui-datepicker [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/farhoudshapouran/react-native-ui-datepicker/blob/main/LICENSE) DateTimePicker component for React Native that allows you to create a customizable date and time picker. The component uses [Day.js](https://day.js.org/) library and it contains a set of style props that allows you to change every item of calendar based on your own UI design. Please visit [demo](https://farhoudshapouran.github.io/react-native-ui-datepicker/). <p align="center"> <img src="/.github/images/react-native-ui-datepicker-example.gif" height="500" /> </p> ## Installation ```sh npm install react-native-ui-datepicker ``` Or ```sh yarn add react-native-ui-datepicker ``` ## Usage ```js import DateTimePicker from 'react-native-ui-datepicker'; import dayjs from 'dayjs'; export default function App() { const [date, setDate] = useState(dayjs()); return ( <View style={styles.container}> <DateTimePicker mode="single" date={date} onChange={(params) => setDate(params.date)} /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#F5FCFF', }, }); ``` For more, take a look at the `/example` directory. ![react-native-ui-datepicker-styles](https://user-images.githubusercontent.com/7857656/227260476-30ee8c25-f809-4dcf-bccf-cd1ffab8795a.jpg) ## Calendar props | Name | Type | Default | Description | |-----------------|------------------|---------------|--------------------------------------------------------------------------| | mode | `string` | `'single'` | Defines the DatePicker mode `['single', 'range', 'multiple']` | | locale | `string` | `'en'` | Defines the DatePicker locale | | minDate | `DateType` | `null` | Defines DatePicker minimum selectable date | | maxDate | `DateType` | `null` | Defines DatePicker maximum selectable date | | maxDate | `isDateDisabled` | `undefined` | A function that return if a specific date is `Disabled` | | firstDayOfWeek | `number` | `0` | Defines the starting day of week, number 0-6, 0 - Sunday, 6 - Saturday | | displayFullDays | `boolean` | `false` | Defines show previous and next month's days in the current calendar view | | initialView | `string` | `'day'` | Defines the DatePicker initial view `['day', 'month', 'year', 'time']` | | height | `number` | `'undefined'` | Defines the Calendar view heights | <p align="center"> <img src="/.github/images/modes-screenshot.png" /> </p> ## Single Mode props | Name | Type | Default | Description | |------------|------------|------------------|---------------------------------------------------| | date | `DateType` | `undefined` | Date value to display selected date | | onChange | `Function` | `({date}) => {}` | Called when the new date selected from DatePicker | | timePicker | `boolean` | `false` | Defines show or hide time picker | ## Range Mode props | Name | Type | Default | Description | |-----------|------------|--------------------------------|----------------------------------------------------------------| | startDate | `DateType` | `undefined` | Start date value to display selected start date | | endDate | `DateType` | `undefined` | End date value to display selected end date | | onChange | `Function` | `({startDate, endDate}) => {}` | Called when the new start or end date selected from DatePicker | ## Multiple Mode props | Name | Type | Default | Description | |----------|--------------|-------------------|----------------------------------------------------| | dates | `DateType[]` | `[]` | Dates array to display selected dates | | onChange | `Function` | `({dates}) => {}` | Called when the new dates selected from DatePicker | ## Styling props | Name | Type | Default | Description | |------------------------------|--------------------------------|-------------|-----------------------------------------------------------------------------------------------| | calendarTextStyle | `TextStyle` | `null` | Defines all text styles inside the calendar (Days, Months, Years, Hours, and Minutes) | | selectedTextStyle | `TextStyle` | `null` | Defines selected (Day, Month, Year) text styles | | selectedItemColor | `string` | `'#0047FF'` | Defines selected (Day, Month, Year) background and border colors | | headerContainerStyle | `ViewStyle` | `null` | Defines calendar header container style | | headerTextContainerStyle | `ViewStyle` | `null` | Defines calendar header texts (Month, Year, Time) containers style | | headerTextStyle | `TextStyle` | `null` | Defines calendar header text styles (Month, Year, Time) | | headerButtonStyle | `ViewStyle` | `null` | Defines calendar header "prev and next buttons" containers style | | headerButtonColor | `string` | `null` | Defines calendar header "prev and next buttons" icon color | | headerButtonSize | `number` | `18` | Defines calendar header "prev and next buttons" icon size | | headerButtonsPosition | `string` | `'around'` | Defines calendar header "prev and next buttons" positions `['around', 'right', 'left']` | | buttonPrevIcon | `ReactNode` | `undefined` | Defines calendar header "prev button" custom icon | | buttonNextIcon | `ReactNode` | `undefined` | Defines calendar header "next button" custom icon | | dayContainerStyle | `ViewStyle` | `null` | Defines days containers style | | todayContainerStyle | `ViewStyle` | `null` | Defines today container style | | todayTextStyle | `TextStyle` | `null` | Defines today text style | | monthContainerStyle | `ViewStyle` | `null` | Defines months containers style | | yearContainerStyle | `ViewStyle` | `null` | Defines years containers style | | weekDaysContainerStyle | `ViewStyle` | `null` | Defines weekdays container style | | weekDaysTextStyle | `TextStyle` | `null` | Defines weekdays texts style | | timePickerContainerStyle | `ViewStyle` | `null` | Defines time picker container style | | timePickerTextStyle | `TextStyle` | `null` | Defines time picker (Hours, Minutes) texts style | | timePickerIndicatorStyle | `ViewStyle` | `null` | Defines selected time indicator style | | timePickerDecelerationRate | `'normal'`, `'fast'`, `number` | `'fast'` | Defines how quickly the underlying scroll view decelerates after the user lifts their finger. | | selectedRangeBackgroundColor | `string` | `undefined` | Defines selected range background color. | ## Contributing See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow. ## Consider supporting with a ⭐️ [Star on GitHub](https://github.com/farhoudshapouran/react-native-ui-datepicker) If you are using the library in one of your projects, please consider supporting it with a star. ## License MIT