mirror of
https://github.com/ecency/ecency-mobile.git
synced 2024-11-24 00:46:27 +03:00
fixed new query data getting spliced, fixed state change logic
This commit is contained in:
parent
06c029141a
commit
fb4de19400
@ -1,5 +1,4 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import { Alert } from 'react-native'
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
|
||||
// Actions
|
||||
@ -18,7 +17,6 @@ const SideMenuContainer = ({ navigation }) => {
|
||||
const drawerStatus = useDrawerStatus();
|
||||
|
||||
|
||||
|
||||
const isLoggedIn = useSelector((state) => state.application.isLoggedIn);
|
||||
const currentAccount = useSelector((state) => state.account.currentAccount);
|
||||
const isVisibleAccountsBottomSheet = useSelector(
|
||||
|
@ -222,6 +222,7 @@ export const useWavesQuery = (host: string) => {
|
||||
|
||||
|
||||
|
||||
|
||||
const _data = unionBy(...wavesQueries.map((query) => query.data), 'url');
|
||||
|
||||
const _filteredData = useMemo(() =>
|
||||
@ -236,6 +237,7 @@ export const useWavesQuery = (host: string) => {
|
||||
const _prevLatestWave = _filteredData[0]
|
||||
|
||||
await _fetchPermlinks('', true);
|
||||
|
||||
const queryResponse = await wavesQueries[0].refetch();
|
||||
|
||||
const _newData:any[] = queryResponse.data || [];
|
||||
@ -247,12 +249,13 @@ export const useWavesQuery = (host: string) => {
|
||||
let _newWaves:any[] = []
|
||||
if (_lastIndex && _lastIndex !== 0) {
|
||||
if (_lastIndex < 0) {
|
||||
_newWaves = _newData?.splice(0, 5) || [];
|
||||
_newWaves = _newData?.slice(0, 5) || [];
|
||||
} else {
|
||||
_newWaves = _newData?.splice(0, _lastIndex) || [];
|
||||
_newWaves = _newData?.slice(0, _lastIndex) || [];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return _newWaves
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@ import WavesHeader from '../children/wavesHeader';
|
||||
import { PostTypes } from '../../../constants/postTypes';
|
||||
import ScrollTopPopup from '../../../components/tabbedPosts/view/scrollTopPopup';
|
||||
import { debounce } from 'lodash';
|
||||
import reactotron from 'reactotron-react-native';
|
||||
|
||||
|
||||
const SCROLL_POPUP_THRESHOLD = 5000;
|
||||
@ -39,14 +40,13 @@ const WavesScreen = () => {
|
||||
|
||||
//actions
|
||||
const _handleAppStateChange = async (nextAppState) => {
|
||||
|
||||
if (
|
||||
appState.current.match(/inactive|background/) &&
|
||||
nextAppState === 'active' &&
|
||||
wavesQuery.data.length > 0
|
||||
nextAppState === 'active'
|
||||
) {
|
||||
const latestWaves = await wavesQuery.latestWavesFetch()
|
||||
if (latestWaves.length > 0) {
|
||||
Alert.alert("latest waves: " + latestWaves.length);
|
||||
setPopupAvatars(latestWaves.map((item) => item.avatar))
|
||||
setEnableScrollTop(true)
|
||||
}
|
||||
@ -68,6 +68,7 @@ const WavesScreen = () => {
|
||||
if (postsListRef.current) {
|
||||
postsListRef.current.scrollToOffset({ offset: 0 });
|
||||
setEnableScrollTop(false);
|
||||
setPopupAvatars([])
|
||||
scrollPopupDebouce.cancel();
|
||||
blockPopupRef.current = true;
|
||||
setTimeout(() => {
|
||||
|
Loading…
Reference in New Issue
Block a user