[FIX] Scroll to top crashing when ref is undefined (#2252)

This commit is contained in:
Djorkaeff Alexandre 2020-07-08 13:36:37 -03:00 committed by Diego Mello
parent 33edacf087
commit 0583de7158
2 changed files with 11 additions and 16 deletions

View File

@ -755,7 +755,7 @@ class RoomView extends React.Component {
if (handleCommandScroll(event)) { if (handleCommandScroll(event)) {
const offset = input === 'UIKeyInputUpArrow' ? 100 : -100; const offset = input === 'UIKeyInputUpArrow' ? 100 : -100;
this.offset += offset; this.offset += offset;
this.flatList.scrollToOffset({ offset: this.offset }); this.flatList?.scrollToOffset({ offset: this.offset });
} else if (handleCommandRoomActions(event)) { } else if (handleCommandRoomActions(event)) {
this.goRoomActionsView(); this.goRoomActionsView();
} else if (handleCommandSearchMessages(event)) { } else if (handleCommandSearchMessages(event)) {

View File

@ -504,12 +504,7 @@ class RoomsListView extends React.Component {
closeSearchHeader(); closeSearchHeader();
} }
setTimeout(() => { setTimeout(() => {
const offset = isAndroid ? 0 : SCROLL_OFFSET; this.scrollToTop();
if (this.scroll.scrollTo) {
this.scroll.scrollTo({ x: 0, y: offset, animated: true });
} else if (this.scroll.scrollToOffset) {
this.scroll.scrollToOffset({ offset });
}
}, 200); }, 200);
}); });
}; };
@ -538,9 +533,7 @@ class RoomsListView extends React.Component {
search: result, search: result,
searching: true searching: true
}); });
if (this.scroll && this.scroll.scrollTo) { this.scrollToTop();
this.scroll.scrollTo({ x: 0, y: 0, animated: true });
}
}, 300); }, 300);
getRoomTitle = item => RocketChat.getRoomTitle(item) getRoomTitle = item => RocketChat.getRoomTitle(item)
@ -561,15 +554,17 @@ class RoomsListView extends React.Component {
this.goRoom({ item, isMasterDetail }); this.goRoom({ item, isMasterDetail });
}; };
scrollToTop = () => {
const offset = isAndroid ? 0 : SCROLL_OFFSET;
if (this.scroll?.scrollToOffset) {
this.scroll.scrollToOffset({ offset });
}
}
toggleSort = () => { toggleSort = () => {
const { toggleSortDropdown } = this.props; const { toggleSortDropdown } = this.props;
const offset = isAndroid ? 0 : SCROLL_OFFSET; this.scrollToTop();
if (this.scroll.scrollTo) {
this.scroll.scrollTo({ x: 0, y: offset, animated: true });
} else if (this.scroll.scrollToOffset) {
this.scroll.scrollToOffset({ offset });
}
setTimeout(() => { setTimeout(() => {
toggleSortDropdown(); toggleSortDropdown();
}, 100); }, 100);