about summary refs log tree commit diff
path: root/src/view/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com')
-rw-r--r--src/view/com/discover/SuggestedFollows.tsx12
-rw-r--r--src/view/com/discover/WhoToFollow.tsx66
-rw-r--r--src/view/com/search/Suggestions.tsx32
3 files changed, 32 insertions, 78 deletions
diff --git a/src/view/com/discover/SuggestedFollows.tsx b/src/view/com/discover/SuggestedFollows.tsx
index bce224231..0d09038ba 100644
--- a/src/view/com/discover/SuggestedFollows.tsx
+++ b/src/view/com/discover/SuggestedFollows.tsx
@@ -11,7 +11,11 @@ export const SuggestedFollows = ({
   suggestions,
 }: {
   title: string
-  suggestions: (AppBskyActorRef.WithInfo | RefWithInfoAndFollowers)[]
+  suggestions: (
+    | AppBskyActorRef.WithInfo
+    | RefWithInfoAndFollowers
+    | AppBskyActorProfile.View
+  )[]
 }) => {
   const pal = usePalette('default')
   return (
@@ -30,7 +34,11 @@ export const SuggestedFollows = ({
             avatar={item.avatar}
             noBg
             noBorder
-            description=""
+            description={
+              item.description
+                ? (item as AppBskyActorProfile.View).description
+                : ''
+            }
             followers={
               item.followers
                 ? (item.followers as AppBskyActorProfile.View[])
diff --git a/src/view/com/discover/WhoToFollow.tsx b/src/view/com/discover/WhoToFollow.tsx
deleted file mode 100644
index 715fadae2..000000000
--- a/src/view/com/discover/WhoToFollow.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from 'react'
-import {ActivityIndicator, StyleSheet, View} from 'react-native'
-import {observer} from 'mobx-react-lite'
-import {useStores} from 'state/index'
-import {SuggestedActorsViewModel} from 'state/models/suggested-actors-view'
-import {ProfileCardWithFollowBtn} from '../profile/ProfileCard'
-import {Text} from '../util/text/Text'
-import {s} from 'lib/styles'
-import {usePalette} from 'lib/hooks/usePalette'
-
-export const WhoToFollow = observer(() => {
-  const pal = usePalette('default')
-  const store = useStores()
-  const suggestedActorsView = React.useMemo<SuggestedActorsViewModel>(
-    () => new SuggestedActorsViewModel(store, {pageSize: 15}),
-    [store],
-  )
-
-  React.useEffect(() => {
-    suggestedActorsView.loadMore(true)
-  }, [store, suggestedActorsView])
-
-  return (
-    <>
-      {(suggestedActorsView.hasContent || suggestedActorsView.isLoading) && (
-        <Text type="title" style={[styles.heading, pal.text]}>
-          Who to follow
-        </Text>
-      )}
-      {suggestedActorsView.hasContent && (
-        <>
-          <View style={[pal.border, styles.bottomBorder]}>
-            {suggestedActorsView.suggestions.map(item => (
-              <ProfileCardWithFollowBtn
-                key={item.did}
-                did={item.did}
-                declarationCid={item.declaration.cid}
-                handle={item.handle}
-                displayName={item.displayName}
-                avatar={item.avatar}
-                description={item.description}
-              />
-            ))}
-          </View>
-        </>
-      )}
-      {suggestedActorsView.isLoading && (
-        <View style={s.mt10}>
-          <ActivityIndicator />
-        </View>
-      )}
-    </>
-  )
-})
-
-const styles = StyleSheet.create({
-  heading: {
-    fontWeight: 'bold',
-    paddingHorizontal: 12,
-    paddingBottom: 8,
-  },
-
-  bottomBorder: {
-    borderBottomWidth: 1,
-  },
-})
diff --git a/src/view/com/search/Suggestions.tsx b/src/view/com/search/Suggestions.tsx
index 1747036ba..5231faeac 100644
--- a/src/view/com/search/Suggestions.tsx
+++ b/src/view/com/search/Suggestions.tsx
@@ -2,15 +2,21 @@ import React from 'react'
 import {StyleSheet, View} from 'react-native'
 import {observer} from 'mobx-react-lite'
 import {FoafsModel} from 'state/models/discovery/foafs'
-import {WhoToFollow} from 'view/com/discover/WhoToFollow'
+import {SuggestedActorsModel} from 'state/models/discovery/suggested-actors'
 import {SuggestedFollows} from 'view/com/discover/SuggestedFollows'
 import {ProfileCardFeedLoadingPlaceholder} from 'view/com/util/LoadingPlaceholder'
 
-export const Suggestions = observer(({foafs}: {foafs: FoafsModel}) => {
-  if (foafs.isLoading) {
-    return <ProfileCardFeedLoadingPlaceholder />
-  }
-  if (foafs.hasContent) {
+export const Suggestions = observer(
+  ({
+    foafs,
+    suggestedActors,
+  }: {
+    foafs: FoafsModel
+    suggestedActors: SuggestedActorsModel
+  }) => {
+    if (foafs.isLoading || suggestedActors.isLoading) {
+      return <ProfileCardFeedLoadingPlaceholder />
+    }
     return (
       <>
         {foafs.popular.length > 0 && (
@@ -21,7 +27,14 @@ export const Suggestions = observer(({foafs}: {foafs: FoafsModel}) => {
             />
           </View>
         )}
-        <WhoToFollow />
+        {suggestedActors.hasContent && (
+          <View style={styles.suggestions}>
+            <SuggestedFollows
+              title="Suggested follows"
+              suggestions={suggestedActors.suggestions}
+            />
+          </View>
+        )}
         {foafs.sources.map((source, i) => {
           const item = foafs.foafs.get(source)
           if (!item || item.follows.length === 0) {
@@ -38,9 +51,8 @@ export const Suggestions = observer(({foafs}: {foafs: FoafsModel}) => {
         })}
       </>
     )
-  }
-  return <WhoToFollow />
-})
+  },
+)
 
 const styles = StyleSheet.create({
   suggestions: {