1- import invoke from 'lodash/invoke' ;
21import PropTypes from 'prop-types' ;
32import XDate from 'xdate' ;
43import memoize from 'memoize-one' ;
@@ -20,7 +19,7 @@ import {parseDate, xdateToData, toMarkingFormat} from '../interface';
2019import { weekDayNames , sameDate , sameMonth } from '../dateutils' ;
2120// @ts -expect-error
2221import { AGENDA_CALENDAR_KNOB } from '../testIDs' ;
23- import { VelocityTracker } from '../input ' ;
22+ import { VelocityTracker } from '../velocityTracker ' ;
2423import { DateData } from '../types' ;
2524import styleConstructor from './style' ;
2625import CalendarList , { CalendarListProps } from '../calendar-list' ;
@@ -203,7 +202,7 @@ export default class Agenda extends Component<AgendaProps, AgendaState> {
203202 calendarScrollable : enable
204203 } ) ;
205204
206- invoke ( this . props , ' onCalendarToggled' , enable ) ;
205+ this . props . onCalendarToggled ?. ( enable ) ;
207206
208207 // Enlarge calendarOffset here as a workaround on iOS to force repaint.
209208 // Otherwise the month after current one or before current one remains invisible.
@@ -223,7 +222,7 @@ export default class Agenda extends Component<AgendaProps, AgendaState> {
223222 firstReservationLoad : true
224223 } ,
225224 ( ) => {
226- invoke ( this . props , ' loadItemsForMonth' , xdateToData ( this . state . selectedDay ) ) ;
225+ this . props . loadItemsForMonth ?. ( xdateToData ( this . state . selectedDay ) ) ;
227226 }
228227 ) ;
229228 }
@@ -241,7 +240,7 @@ export default class Agenda extends Component<AgendaProps, AgendaState> {
241240 selectedDay : day . clone ( )
242241 } ) ;
243242
244- invoke ( this . props , ' onCalendarToggled' , false ) ;
243+ this . props . onCalendarToggled ?. ( false ) ;
245244
246245 if ( ! optimisticScroll ) {
247246 this . setState ( {
@@ -252,8 +251,8 @@ export default class Agenda extends Component<AgendaProps, AgendaState> {
252251 this . setScrollPadPosition ( this . initialScrollPadPosition ( ) , true ) ;
253252 this . calendar ?. current ?. scrollToDay ( day , this . calendarOffset ( ) , true ) ;
254253
255- invoke ( this . props , ' loadItemsForMonth' , xdateToData ( day ) ) ;
256- invoke ( this . props , ' onDayPress' , xdateToData ( day ) ) ;
254+ this . props . loadItemsForMonth ?. ( xdateToData ( day ) ) ;
255+ this . props . onDayPress ?. ( xdateToData ( day ) ) ;
257256 }
258257
259258 generateMarkings = memoize ( ( selectedDay , markedDates , items = { } ) => {
@@ -324,14 +323,14 @@ export default class Agenda extends Component<AgendaProps, AgendaState> {
324323 } ;
325324
326325 onVisibleMonthsChange = ( months : DateData [ ] ) => {
327- invoke ( this . props , ' onVisibleMonthsChange' , months ) ;
326+ this . props . onVisibleMonthsChange ?. ( months ) ;
328327
329328 if ( this . props . items && ! this . state . firstReservationLoad ) {
330329 clearTimeout ( this . scrollTimeout ) ;
331330
332331 this . scrollTimeout = setTimeout ( ( ) => {
333332 if ( this . _isMounted ) {
334- invoke ( this . props , ' loadItemsForMonth' , months [ 0 ] ) ;
333+ this . props . loadItemsForMonth ?. ( months [ 0 ] ) ;
335334 }
336335 } , 200 ) ;
337336 }
@@ -346,7 +345,7 @@ export default class Agenda extends Component<AgendaProps, AgendaState> {
346345 selectedDay : newDate
347346 } ) ;
348347
349- invoke ( this . props , ' onDayChange' , xdateToData ( newDate ) ) ;
348+ this . props . onDayChange ?. ( xdateToData ( newDate ) ) ;
350349 } ;
351350
352351 renderReservations ( ) {
0 commit comments