diff --git a/screens/PlanningScreen.js b/screens/PlanningScreen.js index 8ae87b7..132ad97 100644 --- a/screens/PlanningScreen.js +++ b/screens/PlanningScreen.js @@ -1,15 +1,14 @@ // @flow import * as React from 'react'; -import { BackHandler } from 'react-native'; -import {Content, H1, H2, H3, Text, Button} from 'native-base'; +import {BackHandler} from 'react-native'; +import {Content, H1, H3, Text, Button} from 'native-base'; import i18n from "i18n-js"; import {View, Image} from "react-native"; import ThemeManager from "../utils/ThemeManager"; import {Linking} from "expo"; import BaseContainer from "../components/BaseContainer"; -import {Agenda} from 'react-native-calendars'; -import {LocaleConfig} from 'react-native-calendars'; +import {Agenda, LocaleConfig} from 'react-native-calendars'; import HTML from 'react-native-render-html'; import Touchable from 'react-native-platform-touchable'; import Modalize from 'react-native-modalize'; @@ -17,10 +16,10 @@ import WebDataManager from "../utils/WebDataManager"; import CustomMaterialIcon from "../components/CustomMaterialIcon"; LocaleConfig.locales['fr'] = { - monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'], - monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'], - dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], - dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'], + monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'], + dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], + dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'], today: 'Aujourd\'hui' }; @@ -53,19 +52,21 @@ function openWebLink(link) { */ export default class PlanningScreen extends React.Component { - modalRef: { current: null | Modalize }; + modalRef: Modalize; + agendaRef: Agenda; webDataManager: WebDataManager; lastRefresh: Date; minTimeBetweenRefresh = 60; - _agenda: Agenda; + didFocusSubscription: Function; + willBlurSubscription: Function; constructor(props: any) { super(props); this.modalRef = React.createRef(); this.webDataManager = new WebDataManager(FETCH_URL); - this._didFocusSubscription = props.navigation.addListener( + this.didFocusSubscription = props.navigation.addListener( 'didFocus', payload => BackHandler.addEventListener( @@ -80,7 +81,7 @@ export default class PlanningScreen extends React.Component { componentDidMount() { this._onRefresh(); - this._willBlurSubscription = this.props.navigation.addListener( + this.willBlurSubscription = this.props.navigation.addListener( 'willBlur', payload => BackHandler.removeEventListener( @@ -92,7 +93,7 @@ export default class PlanningScreen extends React.Component { onBackButtonPressAndroid = () => { if (this.state.calendarShowing) { - this._agenda.chooseDay(this._agenda.state.selectedDay); + this.agendaRef.chooseDay(this.agendaRef.state.selectedDay); return true; } else { return false; @@ -100,8 +101,8 @@ export default class PlanningScreen extends React.Component { }; componentWillUnmount() { - this._didFocusSubscription && this._didFocusSubscription.remove(); - this._willBlurSubscription && this._willBlurSubscription.remove(); + this.didFocusSubscription && this.didFocusSubscription.remove(); + this.willBlurSubscription && this.willBlurSubscription.remove(); } state = { @@ -395,7 +396,9 @@ export default class PlanningScreen extends React.Component { // If provided, a standard RefreshControl will be added for "Pull to Refresh" functionality. Make sure to also set the refreshing prop correctly. onRefresh={() => this._onRefresh()} // callback that fires when the calendar is opened or closed - onCalendarToggled={(calendarOpened) => {this.setState({calendarShowing: calendarOpened})}} + onCalendarToggled={(calendarOpened) => { + this.setState({calendarShowing: calendarOpened}) + }} // Set this true while waiting for new data from a refresh refreshing={this.state.refreshing} renderItem={(item) => this.getRenderItem(item)} @@ -404,7 +407,7 @@ export default class PlanningScreen extends React.Component { // If firstDay=1 week starts from Monday. Note that dayNames and dayNamesShort should still start from Sunday. firstDay={1} // ref to this agenda in order to handle back button event - ref={(ref) => this._agenda = ref} + ref={(ref) => this.agendaRef = ref} // agenda theme theme={{ backgroundColor: ThemeManager.getCurrentThemeVariables().agendaBackgroundColor,