about summary refs log tree commit diff
path: root/src/view/com/posts
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com/posts')
-rw-r--r--src/view/com/posts/Feed.tsx16
-rw-r--r--src/view/com/posts/FeedSlice.tsx12
2 files changed, 18 insertions, 10 deletions
diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx
index 5c9d1ad2c..74bff1ab0 100644
--- a/src/view/com/posts/Feed.tsx
+++ b/src/view/com/posts/Feed.tsx
@@ -24,6 +24,7 @@ import {
   FeedParams,
   usePostFeedQuery,
 } from '#/state/queries/post-feed'
+import {useModerationOpts} from '#/state/queries/preferences'
 
 const LOADING_ITEM = {_reactKey: '__loading__'}
 const EMPTY_FEED_ITEM = {_reactKey: '__empty__'}
@@ -71,6 +72,7 @@ export function Feed({
   const [isPTRing, setIsPTRing] = React.useState(false)
   const checkForNewRef = React.useRef<(() => void) | null>(null)
 
+  const moderationOpts = useModerationOpts()
   const opts = React.useMemo(() => ({enabled}), [enabled])
   const {
     data,
@@ -115,7 +117,7 @@ export function Feed({
 
   const feedItems = React.useMemo(() => {
     let arr: any[] = []
-    if (isFetched) {
+    if (isFetched && moderationOpts) {
       if (isError && isEmpty) {
         arr = arr.concat([ERROR_ITEM])
       }
@@ -133,7 +135,7 @@ export function Feed({
       arr.push(LOADING_ITEM)
     }
     return arr
-  }, [isFetched, isError, isEmpty, data])
+  }, [isFetched, isError, isEmpty, data, moderationOpts])
 
   // events
   // =
@@ -195,7 +197,14 @@ export function Feed({
       } else if (item === LOADING_ITEM) {
         return <PostFeedLoadingPlaceholder />
       }
-      return <FeedSlice slice={item} dataUpdatedAt={dataUpdatedAt} />
+      return (
+        <FeedSlice
+          slice={item}
+          dataUpdatedAt={dataUpdatedAt}
+          // we check for this before creating the feedItems array
+          moderationOpts={moderationOpts!}
+        />
+      )
     },
     [
       feed,
@@ -204,6 +213,7 @@ export function Feed({
       onPressTryAgain,
       onPressRetryLoadMore,
       renderEmptyState,
+      moderationOpts,
     ],
   )
 
diff --git a/src/view/com/posts/FeedSlice.tsx b/src/view/com/posts/FeedSlice.tsx
index c33c6028d..fad9f9b4e 100644
--- a/src/view/com/posts/FeedSlice.tsx
+++ b/src/view/com/posts/FeedSlice.tsx
@@ -2,30 +2,28 @@ import React from 'react'
 import {StyleSheet, View} from 'react-native'
 import {observer} from 'mobx-react-lite'
 import {FeedPostSlice} from '#/state/queries/post-feed'
-import {AtUri, moderatePost} from '@atproto/api'
+import {AtUri, moderatePost, ModerationOpts} from '@atproto/api'
 import {Link} from '../util/Link'
 import {Text} from '../util/text/Text'
 import Svg, {Circle, Line} from 'react-native-svg'
 import {FeedItem} from './FeedItem'
 import {usePalette} from 'lib/hooks/usePalette'
 import {makeProfileLink} from 'lib/routes/links'
-import {useStores} from '#/state'
 
 export const FeedSlice = observer(function FeedSliceImpl({
   slice,
   dataUpdatedAt,
   ignoreFilterFor,
+  moderationOpts,
 }: {
   slice: FeedPostSlice
   dataUpdatedAt: number
   ignoreFilterFor?: string
+  moderationOpts: ModerationOpts
 }) {
-  const store = useStores()
   const moderations = React.useMemo(() => {
-    return slice.items.map(item =>
-      moderatePost(item.post, store.preferences.moderationOpts),
-    )
-  }, [slice, store.preferences.moderationOpts])
+    return slice.items.map(item => moderatePost(item.post, moderationOpts))
+  }, [slice, moderationOpts])
 
   // apply moderation filter
   for (let i = 0; i < slice.items.length; i++) {