about summary refs log tree commit diff
path: root/src/lib/hooks/useCustomFeed.ts
blob: d7a27050dcf1ca749c576c9a2e5b84fa9f57c707 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import {useEffect, useState} from 'react'
import {useStores} from 'state/index'
import {CustomFeedModel} from 'state/models/feeds/custom-feed'

export function useCustomFeed(uri: string): CustomFeedModel | undefined {
  const store = useStores()
  const [item, setItem] = useState<CustomFeedModel | undefined>()
  useEffect(() => {
    async function fetchView() {
      const res = await store.agent.app.bsky.feed.getFeedGenerator({
        feed: uri,
      })
      const view = res.data.view
      return view
    }
    async function buildFeedItem() {
      const view = await fetchView()
      if (view) {
        const temp = new CustomFeedModel(store, view)
        setItem(temp)
      }
    }
    buildFeedItem()
  }, [store, uri])

  return item
}