mattermost-mobile/app/hooks/reset_native_scrollview.ts
Mattermost Build bc39b38bf4
fix: reset iOS scrollView when switching channels (#5447) (#5448)
* fix: reset iOS scrollView when switching channels

* cancel animation frame after resetting the scrollview

* add useResetNativeScrollView hook

(cherry picked from commit b2d233b5ed)

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-06-11 18:44:49 -04:00

24 lines
843 B
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {useEffect, useRef} from 'react';
import {UPDATE_NATIVE_SCROLLVIEW} from '@constants/post_draft';
import EventEmitter from '@mm-redux/utils/event_emitter';
export const useResetNativeScrollView = (scrollViewNativeID: string | undefined, postIds: string[]) => {
const prevPostCount = useRef(postIds.length);
useEffect(() => {
if (scrollViewNativeID) {
EventEmitter.emit(UPDATE_NATIVE_SCROLLVIEW, scrollViewNativeID);
}
}, [scrollViewNativeID]);
useEffect(() => {
if (!prevPostCount.current && postIds.length) {
EventEmitter.emit(UPDATE_NATIVE_SCROLLVIEW, scrollViewNativeID);
}
prevPostCount.current = postIds.length;
}, [postIds]);
};