Skip to content

Commit 4ff312f

Browse files
committed
fix ts error
1 parent 5a166fc commit 4ff312f

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

example/src/screens/agenda.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export default class AgendaScreen extends Component<State> {
1919
items={this.state.items}
2020
loadItemsForMonth={this.loadItems}
2121
selected={'2017-05-16'}
22-
//@ts-expect-error
2322
renderItem={this.renderItem}
2423
renderEmptyDate={this.renderEmptyDate}
2524
rowHasChanged={this.rowHasChanged}

src/agenda/reservation-list/index.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ export type ReservationListProps = ReservationProps & {
1818
the value of date key kas to be an empty array []. If there exists no value for date key it is
1919
considered that the date in question is not yet loaded */
2020
items?: ReservationsType;
21-
selectedDay: XDate;
22-
topDay: XDate;
21+
selectedDay?: XDate;
22+
topDay?: XDate;
2323
/** Show items only for the selected day. Default = false */
24-
showOnlySelectedDayItems: boolean;
24+
showOnlySelectedDayItems?: boolean;
2525
/** callback that gets called when day changes while scrolling agenda list */
2626
onDayChange?: (day: XDate) => void;
2727
/** specify what should be rendered instead of ActivityIndicator */
28-
renderEmptyData: () => JSX.Element;
28+
renderEmptyData?: () => JSX.Element;
2929
style?: StyleProp<ViewStyle>;
3030

3131
/** onScroll ListView event */
@@ -92,7 +92,7 @@ class ReservationList extends Component<ReservationListProps, State> {
9292
};
9393
private style: {[key: string]: ViewStyle | TextStyle};
9494
private heights: number[];
95-
private selectedDay: XDate;
95+
private selectedDay?: XDate;
9696
private scrollOver: boolean;
9797
private list: React.RefObject<FlatList> = React.createRef();
9898

@@ -116,7 +116,7 @@ class ReservationList extends Component<ReservationListProps, State> {
116116
}
117117

118118
componentDidUpdate(prevProps: ReservationListProps) {
119-
if (prevProps !== this.props) {
119+
if (this.props.topDay && prevProps.topDay && prevProps !== this.props) {
120120
if (!sameDate(prevProps.topDay, this.props.topDay)) {
121121
this.setState(
122122
{
@@ -139,6 +139,7 @@ class ReservationList extends Component<ReservationListProps, State> {
139139
updateReservations(props: ReservationListProps) {
140140
const {selectedDay} = props;
141141
const reservations = this.getReservations(props);
142+
if (selectedDay && this.selectedDay)
142143
if (this.list && !sameDate(selectedDay, this.selectedDay)) {
143144
let scrollPosition = 0;
144145
for (let i = 0; i < reservations.scrollPosition; i++) {
@@ -235,7 +236,7 @@ class ReservationList extends Component<ReservationListProps, State> {
235236
if (!row) return;
236237

237238
const day = row.day;
238-
const dateIsSame = sameDate(day, this.selectedDay);
239+
const dateIsSame = this.selectedDay && sameDate(day, this.selectedDay);
239240
if (!dateIsSame && this.scrollOver) {
240241
this.selectedDay = day.clone();
241242
this.props.onDayChange?.(day.clone());
@@ -269,7 +270,7 @@ class ReservationList extends Component<ReservationListProps, State> {
269270

270271
render() {
271272
const {items, selectedDay, theme, style} = this.props;
272-
if (!items || !items[toMarkingFormat(selectedDay)]) {
273+
if (!items || selectedDay && !items[toMarkingFormat(selectedDay)]) {
273274
if (isFunction(this.props.renderEmptyData)) {
274275
return this.props.renderEmptyData?.();
275276
}

src/agenda/reservation-list/reservation.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ import {Theme, DayReservations, ReservationItemType} from '../../types';
1313

1414

1515
export interface ReservationProps {
16-
item: DayReservations;
16+
item?: DayReservations;
1717
/** Specify theme properties to override specific styles for reservation parts. Default = {} */
18-
theme: Theme;
18+
theme?: Theme;
1919
/** specify your item comparison function for increased performance */
2020
rowHasChanged?: (a: ReservationItemType, b: ReservationItemType) => boolean;
2121
/** specify how each date should be rendered. date can be undefined if the item is not first in that day */
22-
renderDay?: (date?: XDate, item?: ReservationItemType) => JSX.Element;
22+
renderDay?: (date?: XDate, item?: ReservationItemType) => React.Component | JSX.Element;
2323
/** specify how each item should be rendered in agenda */
24-
renderItem?: (reservation: ReservationItemType, isFirst: boolean) => React.Component;
24+
renderItem?: (reservation: ReservationItemType, isFirst: boolean) => React.Component | JSX.Element;
2525
/** specify how empty date content with no items should be rendered */
26-
renderEmptyDate?: (date?: XDate) => JSX.Element;
26+
renderEmptyDate?: (date?: XDate) => React.Component | JSX.Element;
2727
}
2828

2929
class Reservation extends Component<ReservationProps> {
@@ -98,7 +98,9 @@ class Reservation extends Component<ReservationProps> {
9898
}
9999

100100
render() {
101-
const {reservation, date} = this.props.item;
101+
const {item} = this.props;
102+
const reservation = item?.reservation;
103+
const date = item?.date;
102104
let content;
103105

104106
if (reservation) {

0 commit comments

Comments
 (0)