fix: bug
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React, { useState, useEffect, useCallback } from 'react'
|
||||
import React, { useState, useCallback } from 'react'
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
@@ -6,11 +6,12 @@ import {
|
||||
FlatList,
|
||||
StatusBar as RNStatusBar,
|
||||
Pressable,
|
||||
RefreshControl,
|
||||
} from 'react-native'
|
||||
import { StatusBar } from 'expo-status-bar'
|
||||
import { SafeAreaView } from 'react-native-safe-area-context'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useRouter } from 'expo-router'
|
||||
import { useRouter, useFocusEffect } from 'expo-router'
|
||||
|
||||
import { useMessages, type Message } from '@/hooks/use-messages'
|
||||
import { useMessageActions } from '@/hooks/use-message-actions'
|
||||
@@ -54,11 +55,11 @@ export default function MessageScreen() {
|
||||
messages: allMessages,
|
||||
loading,
|
||||
loadingMore,
|
||||
refreshing,
|
||||
error,
|
||||
refetch,
|
||||
loadMore,
|
||||
hasMore,
|
||||
execute,
|
||||
} = useMessages({ limit: 20 })
|
||||
|
||||
const {
|
||||
@@ -75,11 +76,19 @@ export default function MessageScreen() {
|
||||
// Filter messages based on active tab
|
||||
const filteredMessages = filterMessagesByTab(allMessages, activeTab)
|
||||
|
||||
// Initial data fetch
|
||||
useEffect(() => {
|
||||
execute()
|
||||
// Reload data when tab gains focus
|
||||
useFocusEffect(
|
||||
useCallback(() => {
|
||||
refetch()
|
||||
executeAnnouncements()
|
||||
}, [refetch, executeAnnouncements])
|
||||
)
|
||||
|
||||
// Handle pull-to-refresh
|
||||
const handleRefresh = useCallback(() => {
|
||||
refetch()
|
||||
executeAnnouncements()
|
||||
}, [])
|
||||
}, [refetch, executeAnnouncements])
|
||||
|
||||
// Handle tab change
|
||||
const handleTabChange = useCallback((type: MessageType) => {
|
||||
@@ -242,6 +251,14 @@ export default function MessageScreen() {
|
||||
onEndReachedThreshold={0.5}
|
||||
ListFooterComponent={renderFooter}
|
||||
ListEmptyComponent={renderEmptyComponent}
|
||||
refreshControl={
|
||||
<RefreshControl
|
||||
refreshing={refreshing}
|
||||
onRefresh={handleRefresh}
|
||||
tintColor="#FFFFFF"
|
||||
colors={['#FFFFFF']}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</SafeAreaView>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user