Giter Site home page Giter Site logo

mokhajavi75 / react-native-jalali-datepicker Goto Github PK

View Code? Open in Web Editor NEW
82.0 5.0 4.0 1.88 MB

๐Ÿ“… React Native Jalali DatePicker component for both Android and iOS โœจ

License: MIT License

JavaScript 70.20% Starlark 4.97% Java 6.81% Ruby 7.18% Objective-C 10.85%
react-native datepicker persian jalali shamsi

react-native-jalali-datepicker's Introduction

react-native-jalali-datepicker

PRs Welcome ย  code style: prettier ย  npm version ย  DUB


Help Needed!

Sadly, I am too busy to maintain this project anymore. Please contact me if you are interested in contributing and maintaining this package (contact info on my profile)

Preview

react-native-jalali-datepicker-example ย  ย  ย  react-native-jalali-datepicker-example

Install

Package Manager Command
yarn yarn add @mohamadkh75/react-native-jalali-datepicker
npm npm i --save @mohamadkh75/react-native-jalali-datepicker

Usage

import DatePicker from '@mohamadkh75/react-native-jalali-datepicker';

<DatePicker
  style={{
    width: '95%',
    height: '80%',
    alignSelf: 'center',
    backgroundColor: '#1e272e',
    borderWidth: 1,
    borderColor: '#4bcffa',
    borderRadius: 10,
    elevation: 4
  }}
  selected='1399/1/18'
  dateSeparator='/'
  minDate='1398/1/18'
  maxDate='1400/1/18'
  headerContainerStyle={{ height: '15%' }}
  yearMonthBoxStyle={{
    width: '30%',
    height: '75%',
    justifyContent: 'center',
    alignItems: 'center',
    borderWidth: 1,
    borderRadius: 10
  }}
  yearMonthTextStyle={{ fontSize: 22, color: '#4bcffa' }}
  iconContainerStyle={{ width: `${100 / 7}%` }}
  backIconStyle={{
    width: 20,
    height: 20,
    resizeMode: 'center',
    tintColor: '#808e9b'
  }}
  nextIconStyle={{
    width: 20,
    height: 20,
    resizeMode: 'center',
    tintColor: '#4bcffa'
  }}
  eachYearStyle={{
    width: 110,
    height: 82,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#4bcffa',
    marginTop: '1.5%',
    marginBottom: 5,
    marginHorizontal: '1.5%',
    borderRadius: 10,
    elevation: 3
  }}
  eachYearTextStyle={{
    fontSize: 16,
    color: 'white'
  }}
  eachMonthStyle={{
    width: `${88 / 3}%`,
    height: `${88 / 4}%`,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#4bcffa',
    marginBottom: '3%',
    borderRadius: 10,
    elevation: 3
  }}
  eachMonthTextStyle={{ fontSize: 16, color: 'white' }}
  weekdaysContainerStyle={{ height: '10%' }}
  weekdayStyle={{
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center'
  }}
  weekdayTextStyle={{
    fontSize: 16,
    color: '#808e9b',
    marginBottom: 5
  }}
  borderColor='#4bcffa'
  dayStyle={{
    width: `${100 / 7}%`,
    justifyContent: 'center',
    alignItems: 'center',
    aspectRatio: 1 / 1
  }}
  selectedDayStyle={{
    width: '70%',
    aspectRatio: 1 / 1,
    justifyContent: 'center',
    alignItems: 'center',
    borderRadius: 100
  }}
  selectedDayColor='#4bcffa'
  dayTextStyle={{ fontSize: 18 }}
  selectedDayTextColor='white'
  dayTextColor='#4bcffa'
  disabledTextColor='#4bcffa66'
  onDateChange={date => console.warn(date)}
/>;

Properties

Prop Default Type
style see Props.js ViewStyle
selected today string
dateSeparator / string
minDate last year string
maxDate next year string
onDateChange date => console.warn(date) Function
headerContainerStyle see Props.js ViewStyle
yearMonthBoxStyle see Props.js ViewStyle
yearMonthTextStyle { fontSize: 22, color: 'black' } TextStyle
iconContainerStyle see Props.js ViewStyle
backIconStyle see Props.js ImageStyle
nextIconStyle see Props.js ImageStyle
eachYearStyle see Props.js ViewStyle
eachYearTextStyle { fontSize: 16, color: 'white' } TextStyle
eachMonthStyle see Props.js ViewStyle
eachMonthTextStyle { fontSize: 16, color: 'white' } TextStyle
weekdaysContainerStyle see Props.js ViewStyle
weekdayStyle see Props.js ViewStyle
weekdayTextStyle { fontSize: 16, color: 'black', marginBottom: 5 } TextStyle
borderColor coral string
dayStyle see Props.js ViewStyle
selectedDayStyle see Props.js ViewStyle
selectedDayColor coral string
dayTextStyle { fontSize: 18 } TextStyle
selectedDayTextColor #FFFFFF string
dayTextColor #111111 string
disabledTextColor #999999 string

Example

Take a look at example:

git clone https://github.com/MohamadKh75/react-native-jalali-datepicker.git

cd example

yarn

react-native run-android

# OR

react-native run-ios

Acknowledgements

I used Vazir font by Saber Rastikerdar in example app!

License

MIT

react-native-jalali-datepicker's People

Contributors

aminmeshk avatar c0mm4nder avatar mokhajavi75 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

react-native-jalali-datepicker's Issues

Switching between Jalali and Gregorian

Suggestion:

I think it will be good to have a props named "IsJalali" or "Gregorian" that is boolean type.
sometimes we have multilingual Application and so we need to switch between calendars.

Require Cycle warning

Every time the app renders the date picker, it gives the warning below (in the console) in React Native v0.63 and I think there should be an easy fix for it:

Require cycle: node_modules\@mohamadkh75\react-native-jalali-datepicker\src\components\index.js -> node_modules\@mohamadkh75\react-native-jalali-datepicker\src\components\YearSelector.js -> node_modules\@mohamadkh75\react-native-jalali-datepicker\src\components\index.js

Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.

time picker not work on release mode

time picker almost work in debug but not work on release mode

<DatePicker
  isGregorian={false}
  options={{
    defaultFont: Fonts.type.iranSans,
    headerFont: Fonts.type.iranSansBold,
    backgroundColor: '#8685ef',
    textHeaderColor: '#fefedf',
    textDefaultColor: '#fff',
    selectedTextColor: '#fff',
    mainColor: '#00176c',
    textSecondaryColor: '#474554',
    borderColor: 'rgba(122, 146, 165, 0.1)'
  }}
  style={{ borderRadius: 10 }}
  minimumDate={getFormatedDate(new Date(), 'jYYYY/jMM/jDD')}
  selected={selectedTime ? selectedTime : null}
  mode="time"
  onTimeChange={time => {
    setselectedTime(time);
    setTimeVisible(false);
  }}
/>

react native 62

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.