Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gusparis/react-native-month-year-picker

React Native Month Picker component for iOS & Android
https://github.com/gusparis/react-native-month-year-picker

android ios java month-picker month-year-picker objective-c react react-native

Last synced: 12 days ago
JSON representation

React Native Month Picker component for iOS & Android

Awesome Lists containing this project

README

        

# react-native-month-year-picker
React Native month picker component for iOS and Android.

| UI Mode | Android | iOS |
| --- | --- | --- |
|

***Light*** | |
|

***Dark*** | |

## Getting started

`$ npm install react-native-month-year-picker --save`

or

`$ yarn add react-native-month-year-picker`

### For [email protected] or above

As [[email protected]](https://reactnative.dev/blog/2019/07/03/version-60) or above supports autolinking, so there is no need to run linking process.
Read more about autolinking [here](https://github.com/react-native-community/cli/blob/master/docs/autolinking.md).

#### iOS
CocoaPods on iOS needs this extra step

```
npx pod-install
```
## Usage
```javascript
import React, { useState, useCallback } from 'react';
import { View, SafeAreaView, Text } from 'react-native';
import MonthPicker from 'react-native-month-year-picker';

const App = () => {
const [date, setDate] = useState(new Date());
const [show, setShow] = useState(false);

const showPicker = useCallback((value) => setShow(value), []);

const onValueChange = useCallback(
(event, newDate) => {
const selectedDate = newDate || date;

showPicker(false);
setDate(selectedDate);
},
[date, showPicker],
);

return (

Month Year Picker Example
{moment(date, "MM-YYYY")}
showPicker(true)}>
OPEN

{show && (

)}

);
};

export default App;

```

## Props

#### `onChange` (`optional`)

Date change handler.

This is called when the user changes the date in the UI. It receives the event and the date as parameters.

```js
setDate = (event, date) => {};

;
```
Events returned by onChange function:
```js
import { ACTION_DATE_SET, ACTION_DISMISSED, ACTION_NEUTRAL } from 'react-native-month-year-picker';
...
onValueChange = (event, newDate) => {
switch(event) {
case ACTION_DATE_SET:
onSuccess(newDate);
break;
case ACTION_NEUTRAL:
onNeutral(newDate);
break;
case ACTION_DISMISSED:
default:
onCancel(); //when ACTION_DISMISSED new date will be undefined
}
}
...
```

#### `value` (`required`)

Defines the date value used in the component.

```js

```

#### `locale` (`optional`)

Defines the month list locale. If not sent, it defaults to device's language.

```js

```

#### `mode` (`optional`)

Defines the month list display mode. It could be either `full`, `short`, `number` or `shortNumber`. Default `full`.

| mode | display |
| --- | --- |
| **full** | *September* |
| **short** | *Sep* |
| **number** | *09* |
| **shortNumber** | *9* |

```js

```
#### `autoTheme` (`optional`)

Enables phone's UI Mode color recognition; for Android 10+ and iOS 13+. Lower OS versions will always be Light Mode. Default `true`.

```js

```

#### `maximumDate` (`optional`)

Defines the maximum date that can be selected. Use year and month constructor.

```js

```

#### `minimumDate` (`optional`)

Defines the minimum date that can be selected. Use year and month constructor.

```js

```

#### `okButton` (`optional`)

Picker modal confirmation button text. Default `Done`.

```js

```

#### `cancelButton` (`optional`)

Picker modal cancelation button text. Default `Cancel`.

```js

```

#### `neutralButton` (`optional`)

Picker modal neutral button text. If not sent, button won't appear. Default `null`.

```js

```

## Running example
1. Install required pods by running `yarn pod:install`.
2. Run `yarn start` to start Metro Bundler.
3. Run `yarn run:ios` or `yarn run:android`.