about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAnsh Nanda <anshnanda10@gmail.com>2023-05-25 18:48:40 -0700
committerAnsh Nanda <anshnanda10@gmail.com>2023-05-25 18:48:40 -0700
commit4cd9a4493e0477d27fbaca7ae024440460de4a8a (patch)
tree56074015778f9b8c58d435d64ede3ec45f09df1e /src
parent27ff9ce43b13b2bb612f27a202a6a153480c16c0 (diff)
downloadvoidsky-4cd9a4493e0477d27fbaca7ae024440460de4a8a.tar.zst
add empty state for custom feed
Diffstat (limited to 'src')
-rw-r--r--src/state/models/feeds/custom-feed.ts8
-rw-r--r--src/view/screens/CustomFeed.tsx6
2 files changed, 14 insertions, 0 deletions
diff --git a/src/state/models/feeds/custom-feed.ts b/src/state/models/feeds/custom-feed.ts
index 9ac69ac28..8fc1eb1ec 100644
--- a/src/state/models/feeds/custom-feed.ts
+++ b/src/state/models/feeds/custom-feed.ts
@@ -8,13 +8,19 @@ export class CustomFeedModel {
   // data
   _reactKey: string
   data: AppBskyFeedDefs.GeneratorView
+  isOnline: boolean
+  isValid: boolean
 
   constructor(
     public rootStore: RootStoreModel,
     view: AppBskyFeedDefs.GeneratorView,
+    isOnline?: boolean,
+    isValid?: boolean,
   ) {
     this._reactKey = view.uri
     this.data = view
+    this.isOnline = isOnline ?? true
+    this.isValid = isValid ?? true
     makeAutoObservable(
       this,
       {
@@ -103,6 +109,8 @@ export class CustomFeedModel {
     })
     runInAction(() => {
       this.data = res.data.view
+      this.isOnline = res.data.isOnline
+      this.isValid = res.data.isValid
     })
   }
 
diff --git a/src/view/screens/CustomFeed.tsx b/src/view/screens/CustomFeed.tsx
index 79b10de04..4149cd49d 100644
--- a/src/view/screens/CustomFeed.tsx
+++ b/src/view/screens/CustomFeed.tsx
@@ -30,6 +30,7 @@ import {FAB} from '../com/util/fab/FAB'
 import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn'
 import {DropdownButton, DropdownItem} from 'view/com/util/forms/DropdownButton'
 import {useOnMainScroll} from 'lib/hooks/useOnMainScroll'
+import {EmptyState} from 'view/com/util/EmptyState'
 
 type Props = NativeStackScreenProps<CommonNavigatorParams, 'CustomFeed'>
 export const CustomFeedScreen = withAuthRequired(
@@ -326,6 +327,10 @@ export const CustomFeedScreen = withAuthRequired(
       onTogglePinned,
     ])
 
+    const renderEmptyState = React.useCallback(() => {
+      return <EmptyState icon="feed" message="This list is empty!" />
+    }, [])
+
     return (
       <View style={s.hContentRegion}>
         <ViewHeader title="" renderButton={currentFeed && renderHeaderBtns} />
@@ -335,6 +340,7 @@ export const CustomFeedScreen = withAuthRequired(
           onScroll={onMainScroll}
           scrollEventThrottle={100}
           ListHeaderComponent={renderListHeaderComponent}
+          renderEmptyState={renderEmptyState}
           extraData={[uri, isPinned]}
         />
         {isScrolledDown ? (