about summary refs log tree commit diff
path: root/src/view/com/posts/Feed.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com/posts/Feed.tsx')
-rw-r--r--src/view/com/posts/Feed.tsx22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx
index fe619ab30..c4f859e04 100644
--- a/src/view/com/posts/Feed.tsx
+++ b/src/view/com/posts/Feed.tsx
@@ -1,6 +1,7 @@
 import React, {memo, MutableRefObject} from 'react'
 import {
   ActivityIndicator,
+  AppState,
   Dimensions,
   RefreshControl,
   StyleProp,
@@ -142,12 +143,23 @@ let Feed = ({
     }
   }, [enabled])
   React.useEffect(() => {
-    if (!pollInterval) {
-      return
+    let cleanup1: () => void | undefined, cleanup2: () => void | undefined
+    const subscription = AppState.addEventListener('change', nextAppState => {
+      // check for new on app foreground
+      if (nextAppState === 'active') {
+        checkForNewRef.current?.()
+      }
+    })
+    cleanup1 = () => subscription.remove()
+    if (pollInterval) {
+      // check for new on interval
+      const i = setInterval(() => checkForNewRef.current?.(), pollInterval)
+      cleanup2 = () => clearInterval(i)
+    }
+    return () => {
+      cleanup1?.()
+      cleanup2?.()
     }
-    // check for new on interval
-    const i = setInterval(() => checkForNewRef.current?.(), pollInterval)
-    return () => clearInterval(i)
   }, [pollInterval])
 
   const feedItems = React.useMemo(() => {