rghorbani / react-native-general-calendars Goto Github PK
View Code? Open in Web Editor NEWReact Native Calendar Components 📆
License: MIT License
React Native Calendar Components 📆
License: MIT License
It's would be great if your library has time picker.
After onDayPress and changing component state, the calendar list does not re-render.
Video example
https://monosnap.com/file/XIqCU55VnNFNtsqnsf5hs5WZ9J52EY
I try'ed in several ways to paste the code in a way that you could see, but looks like github WYSYWYG is not prepared to accept code 🌊
`
onDayPress(date) {
console.log('Selected day : ')
console.log(date)
const selectedDate = date.dateString
let marked = true
if (this.state.markedDates[selectedDate]) {
// Already in marked dates, so reverse current marked state
marked = !this.state.markedDates[selectedDate].selected
}
// Create a new object using object property spread since it should be immutable
// Reading: https://davidwalsh.name/merge-objects
const updatedMarkedDates = { ...this.state.markedDates, ...{ [selectedDate]: { 'selected': marked } } }
this.setState({
selectedDate: selectedDate,
markedDates: updatedMarkedDates,
})
}`
Can you show me how can I use DatePicker
?
How can I set default value?
E:\manager>npm install react-native-general-calendars
> [email protected] postinstall E:\manager\node_modules\react-native-interactable
> ln -sf lib/{ios,android} .
'ln' is not recognized as an internal or external command,
operable program or batch file.
npm WARN [email protected] requires a peer of eslint@^3.17.0 || ^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-native@^0.51 || ^0.52 || ^0.53 || ^0.54 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-native-web@* but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.6 || ^15.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-freebsd-ia32):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"freebsd","arch":"ia32"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-darwin-ia32):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"darwin","arch":"ia32"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-darwin-x64):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"darwin","arch":"x64"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-freebsd-x64):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"freebsd","arch":"x64"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-linux-arm):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"linux","arch":"arm"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-linux-ia32):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"linux","arch":"ia32"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-linux-arm64):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"linux","arch":"arm64"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-sunos-x64):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"sunos","arch":"x64"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-linux-x64):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"linux","arch":"x64"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @expo/[email protected] (node_modules\@expo\ngrok-bin-win32-ia32):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @expo/[email protected]: wanted {"os":"win32","arch":"ia32"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `ln -sf lib/{ios,android} .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\shaha\AppData\Roaming\npm-cache\_logs\2018-07-02T10_08_25_856Z-debug.log
upon npm install
could you please address this Mr. Ghorbani ?
this is my package.json file :
"dependencies": {
"@types/react": "^16.4.6",
"@types/react-native": "^0.55.26",
"download": "^7.0.0",
"expo": "^27.0.1",
"mobx": "^4.3.1",
"mobx-react": "^5.2.3",
"native-base": "^2.6.1",
"parse": "^1.11.1",
"react": "^16.4.1",
"react-native": "~0.55.2",
"react-native-animatable": "^1.3.0",
"react-native-elements": "^0.19.1",
"react-native-router-flux": "^4.0.0-beta.31"
}
}
hello
is possible to surf between years fast in this Calendar ??
my user wanna select birthday but how with this component ???
<CalendarList // Calendar type (gregorian, jalaali). Default = gregorian type='jalaali' onDayPress={(day, localDay) => this.onDateChange(day)} // Max amount of months allowed to scroll to the past. Default = 50 pastScrollRange={50} // Max amount of months allowed to scroll to the future. Default = 50 futureScrollRange={50} // Enable or disable scrolling of calendar list scrollEnabled={true} // Enable or disable vertical scroll indicator. Default = false showScrollIndicator={true} />
@rghorbani type="gregorian"
works well but , jalaali
is not
<Calendar
type="jalaali"
onDayPress={(day, localDay) => {console.log('selected day', day.dateString, localDay.dateString)}}
onDayLongPress={(day, localDay) => {console.log('selected day', day.dateString, localDay.dateString)}}
/>
logged console is :
selected day ۰۶۲۱-۰۳-۲۱ ۰۰۰۰-۰۱-۰۱
This error is shown when I upgrade react-native version to 0.61.1
Dear Reza
When I have configured type="jalaali" in the calendar component, In some situations, next month stop working.
I have traced code and found below expression in updateMonth method cause unwanted response:
if (day.format('YYYY MM') === this.state.currentMonth.format('YYYY MM')) { return; }
when I removed above code in updateMonth my problem was solved.
Could you say what is this code for?
When try to select the other date its not get highlighted even current date
I am trying to run provided example but gives this error while executing npm install command
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "link:": link:..
Android 4.2.2 in release mode i got this runTime error:
com.facebook.react.common.JavascriptException: Requiring unknown module "./locale/fa"., stack:
"react-native-general-calendars": "^1.8.0",
"react-native": "0.51.0",
<Calendar
type='jalaali'
hideExtraDays={true}
onDayPress={this.onDateChoose}
theme={{
textSectionTitleColor: '#b6c1cd',
selectedDayBackgroundColor: '#2b8ce5',
todayTextColor: '#2b8ce5',
dayTextColor: '#2d4150',
monthTextColor: '#0037a9',
textDayFontFamily: 'IRANSansMobileFaNum',
textMonthFontFamily: 'IRANSansMobileFaNum',
textDayHeaderFontFamily: 'IRANSansMobileFaNum',
textDayFontSize: fontSize36,
textMonthFontSize: fontSize36,
textDayHeaderFontSize: 12
}}
/>
I can not use agenda with type="jalaali" and it is english. Is agenda supported?
How is this lib different from https://github.com/wix/react-native-calendars?
سلام و خیلی متشکر از زحمتی که کشیدی بابت شمسی کردن تقویم این کامپوننت
اگر ممکن هست زود تر agenda رو هم اضافه کن
File Name : AuthSignUpContainer.js:
error: bundling failed: SyntaxError: Unexpected reserved type any. (14)
error: bundling failed: SyntaxError: Unexpected reserved type func. (16)
13 | type Props = {
14 | AuthSignUpReducer: PropTypes.any,
| ^
15 | authSignUpReset: PropTypes.func,
16 | authSignUpDismissMessages: PropTypes.func,
17 | };
After updating react-native to 0.61.4
, the following error appears:
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
import { Calendar } from 'react-native-general-calendars';
const Component = () => {
return (
<Calendar
markedDates={{ '2012-05-17': { marked: true } }}
/>
);
};
I can not change calendar localization, please provide more detail on this subject, in your wiki.
where exactly I must put this code?
import Moment from 'moment';
Moment.locales('fr', {
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
monthsParseExact : true,
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
weekdaysParseExact : true,
});
Hello I would like to know if there are any update on this issue with RN 0.62.2 ?
Thank you a lot for your package
node_modules\react-native-common\src\components\other\SegmentedControl.js: Unexpected reserved type string (26:30)
24 | static propTypes: {
25 | values: PropTypes.array,
> 26 | selectionColor: PropTypes.string,
| ^
27 | selectedIndex: PropTypes.number,
28 | onChange: PropTypes.func,
29 | titleStyle: PropTypes.any,
Here is my code,
when I set correspond gregorian date or not set the current props, calendar is working properly and it set to current date of system in jalaali mode. but it doesn't when I manually set the date in props.
export default class App extends Component<Props> {
render() {
return (
<View style={styles.container}>
<Calendar
type="jalaali"
current="1397-05-28"
onDayPress={(day, localDay) => {console.log('selected day', day, localDay)}}
// Handler which gets executed when press arrow icon left. It receive a callback can go back month
onPressArrowLeft={substractMonth => substractMonth()}
// Handler which gets executed when press arrow icon left. It receive a callback can go next month
onPressArrowRight={addMonth => addMonth()}
style={{
borderWidth: 1,
borderColor: 'black',
height: 350
}}
// Specify theme properties to override specific styles for calendar parts. Default = {}
theme={{
backgroundColor: '#ffffff',
calendarBackground: '#ffffff',
textSectionTitleColor: '#b6c1cd',
selectedDayBackgroundColor: '#00adf5',
selectedDayTextColor: '#ffffff',
todayTextColor: '#00adf5',
dayTextColor: '#2d4150',
textDisabledColor: '#d9e1e8',
dotColor: '#00adf5',
selectedDotColor: '#ffffff',
arrowColor: 'orange',
monthTextColor: 'blue',
textDayFontFamily: 'monospace',
textMonthFontFamily: 'monospace',
textDayHeaderFontFamily: 'monospace',
textMonthFontWeight: 'bold',
textDayFontSize: 16,
textMonthFontSize: 16,
textDayHeaderFontSize: 16
}}
/>
</View>
);
}
}
for more details, I bring here result of onDayPress
function.
result of press on day 1
'selected day', { year: 1397,
month: 5,
day: 21,
timestamp: -18069955200000,
dateString: '1397-05-21' }, { year: 776,
month: 3,
day: 1,
timestamp: -18069955200000,
dateString: '0776-03-01' }
result of press on day 15
'selected day', { year: 1397,
month: 6,
day: 4,
timestamp: -18068745600000,
dateString: '1397-06-04' }, { year: 776,
month: 3,
day: 15,
timestamp: -18068745600000,
dateString: '0776-03-15' }
Is it a bug or I am doing something wrong in my code?
error: bundling failed: SyntaxError: D:\mobileProject\sample_project\node_modules\react-native-jalali-date-picker-rtl\WeekDaysLabels.js: Unexpected reserved type number (24:27)
22 | class WeekDaysLabels extends React.Component {
23 | static propTypes: {
24 | screenWidth: PropTypes.number,
| ^
25 | textStyle: Text.propTypes.style
26 | };
in react native 0.61
Hi. Do you have any plans to support typescript? thanks.
I upgraded to react-native 0.59.10 but bundling is failed:
`react-native-common\src\components\SegmentedControl.js: Unexpected reserved type string (20:30)
18 | static propTypes: {
19 | values: PropTypes.array,
20 | selectionColor: PropTypes.string,
| ^
21 | selectedIndex: PropTypes.number,
22 | onChange: PropTypes.func,
23 | titleStyle: PropTypes.any,
at Object.raise (@react-native-community\cli\node_modules\metro-react-native-babel-transformer\node_modules@babel\parser\lib\index.js:7012:17)`
installed library with react-native 61.2 , and userd sample
but gets error
below is the code
import * as React from 'react';
import { View, TouchableOpacity, Image, Text, StyleSheet } from 'react-native';
import { Calendar, CalendarList, Agenda } from 'react-native-general-calendars';
class App extends React.Component {
constructor() {
super()
}
render() {
return (
);
}
}
export default App;
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 40,
},
});
The vertical version works just fine inside my <Modal>
without any weird behavior.
But when i set horizontal={true}
, at first the Calendar gets rendered for a brief moment and i can see it but then it suddenly disappears.
Here's my code:
import React, { Component } from 'react';
import { Modal, View, ... } from 'react-native';
import { Container, Button, ... } from 'native-base';
class Archive extends Component<Props> {
...
render() {
return (
<Container>
<View>
<Modal
animationType="fade"
transparent={true}
visible={this.state.modalToDateVisible}
onRequestClose={() => {
this.setState({modalToDateVisible:false})
}}>
<View style={{alignItems:'center', justifyContent:'center', flex: 1, flexDirection: 'column', backgroundColor:'rgba(0, 0, 0, 0.5)'}}>
<View style={{width:'95%', backgroundColor:'#F6F7F9', padding: 20 }}>
<CalendarList
horizontal={true}
pagingEnabled={true}
type='jalaali'
/>
<View style={{marginTop:20}}>
<Button onPress={()=>this.closeToDateModal()}
<Text style={{fontSize:20}}>Close</Text>
</Button>
</View>
</View>
</View>
...
);
}
}
<View>
to horizontal <ScrollView>
BTW: it works outside my Modal
and the normal <Calendar>
works too.
Thanks in advance
is it possible to have Persian font's like for weeks and month and Persian digits for days ?
Hello and say Thank u for this powerful package.
I've just develop a reservation application for Android and IOS.
I need a clean and fast datePicker like this package, but i want to use Shamsi/Jalali
date.
How can i set RN-General-Calendars
to jalali moment ?
i want to send start and end date to server
how to give start and end from calendar?
when i select a day color not change
Hi,
I got this error while use this library.
I can't seem to get the current selected date to show a blue (or any color) dot around the date. My code is:
`
class AddChildForm extends Component<Props, State> {
constructor(props) {
super(props);
this.state = { dob: new Date(), dobModal: true };
}
handleDateChange = (dob) => {
this.setState({ dob, dobModal: false });
}
handleDOBModal = () => {
this.setState({ dobModal: true });
}
render() {
const { name, dob, gender, dobModal } = this.state;
return (
<KeyboardAvoidingView behavior="position" enabled contentContainerStyle={styles.keyboardContainer}>
<View style={styles.bottomHalfContainer}>
<View style={styles.formContainer}>
{/* DOB MODAL */}
<Modal
animationType="slide"
transparent={false}
visible={dobModal}
>
<View style={{ marginTop: 22, flex: 1 }}>
<Calendar
markingStyle="period"
monthFormat="MMMM YYYY"
current={dob}
onDayPress={this.handleDateChange}
firstDay={1}
/>
</View>
</Modal>
</View>
</View>
</KeyboardAvoidingView>
);
}
}
`
The currently selected date doesn't seem to work with no styles defined or with this:
theme={{ textSectionTitleColor: '#b6c1cd', selectedDayBackgroundColor: '#00adf5', selectedDayTextColor: '#ffffff', }}
hi
when install react-native-general-calendars
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: ln -sf lib/{ios,android} .
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
Thanks for this great component but how the year can be picked?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.