mattermost-mobile/app/hooks/reset_native_scrollview.ts
Elias Nahum b2d233b5ed
fix: reset iOS scrollView when switching channels (#5447)
* fix: reset iOS scrollView when switching channels

* cancel animation frame after resetting the scrollview

* add useResetNativeScrollView hook
2021-06-11 18:22:38 -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]);
};