You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hi, i want to re-render calendar-strip when i change language of my app, but i failed. How do I re-render the calendar-strip when the app language changes? also how do I make onWeeksChanged work only when I click the right and left week buttons? I'm sorry for my bad english ?
import {observer} from 'mobx-react-lite';
import * as React from 'react';
import {View} from 'react-native';
import CalendarStrip from 'react-native-calendar-strip';
import {useStores} from '../../models';
import Icon from '@expo/vector-icons/EvilIcons';
import AppStore from '../../services/stores/AppStore';
import remoteConfig from '@react-native-firebase/remote-config';
import {toJS} from 'mobx';
import {color} from '../../theme';
import {useState} from 'react';
import moment from 'moment';
interface CalendarComponentProps {
handleLessons: any;
}
const CalendarComponent = observer((props: CalendarComponentProps) => {
const [calendarStartDay, setCalendarStartDay] = useState<any>();
const {
TimeTableStore: {fetchTimeTable, getSelectedDate, setSelectedDate, list},
} = useStores();
return (
<CalendarStrip
locale={{
name: AppStore.activeLanguage,
config: moment().locale(AppStore.activeLanguage).localeData(),
}}
selectedDate={getSelectedDate()}
onWeekChanged={(start, end) => {
if (calendarStartDay != moment(start).format('D')) {
setCalendarStartDay(moment(start).format('D'));
setSelectedDate(new Date(moment(start).toString()));
fetchTimeTable(
remoteConfig().getValue('year').asNumber(),
remoteConfig().getValue('period').asNumber(),
new Date(moment(start).format('YYYY,M,D')).toUTCString(),
new Date(moment(end).format('YYYY,M,D')).toUTCString(),
).then(() => {
let allLessons = toJS(list);
let lessonsArray: any = [];
allLessons.map((data: any) => {
const day = moment(data.Baslangic).format('D');
if (moment(start).format('D') == day) {
lessonsArray.push(data);
}
});
props.handleLessons(lessonsArray);
});
}
}}
scrollable={false}
onDateSelected={async date => {
setSelectedDate(new Date(moment(date).toString()));
let allLessons = toJS(list);
let lessonsArray: any = [];
allLessons.map((data: any) => {
const day = moment(data.Baslangic).format('D');
if (moment(date).format('D') == day) {
lessonsArray.push(data);
}
});
props.handleLessons(lessonsArray);
}}
calendarAnimation={{type: 'sequence', duration: 30}}
daySelectionAnimation={{
type: 'border',
duration: 200,
borderWidth: 1,
borderHighlightColor: color.second,
}}
style={{
backgroundColor: color.transparent,
height: 90,
}}
calendarHeaderStyle={{
color: color.white,
fontSize: 20,
textTransform: 'uppercase',
margin: 0,
padding: 0,
}}
calendarColor={color.white}
dateNumberStyle={{color: color.white}}
dateNameStyle={{color: color.white}}
highlightDateNumberStyle={{color: color.white}}
highlightDateNameStyle={{color: color.white}}
iconLeftStyle={{opacity: 0}}
iconStyle={{color: 'red'}}
leftSelector={
<View style={{width: 18}}>
<Icon
name="chevron-left"
size={60}
color={color.white}
style={{marginLeft: -20}}
/>
</View>
}
rightSelector={
<View style={{width: 18}}>
<Icon
name="chevron-right"
size={60}
color={color.white}
style={{marginLeft: -24}}
/>
</View>
}
/>
);
});
export default CalendarComponent;
The text was updated successfully, but these errors were encountered:
As you can see, I am printing a log if the week changes. That is not printed when I select a date. If I click on the Week shifters (left, right arrows in your case), only thne the log is printed.
hi, i want to re-render calendar-strip when i change language of my app, but i failed. How do I re-render the calendar-strip when the app language changes? also how do I make onWeeksChanged work only when I click the right and left week buttons? I'm sorry for my bad english ?
The text was updated successfully, but these errors were encountered: