diff --git a/app/feed_list.tsx b/app/feed_list.tsx
index df8d51d..529a000 100644
--- a/app/feed_list.tsx
+++ b/app/feed_list.tsx
@@ -1,13 +1,12 @@
import { View, Text, StyleSheet, ScrollView } from 'react-native'
import { useEffect, useState } from 'react'
import axios from 'axios'
-import { useAuthStore } from '../store'
+import { useAuthStore, useSubscription } from '../store'
const Separator = () =>
const styles = StyleSheet.create({
separator: {
- marginVertical: 8,
borderBottomColor: '#cccccc',
borderBottomWidth: 1
},
@@ -18,6 +17,10 @@ const styles = StyleSheet.create({
export default function FeedListView() {
const { credential } = useAuthStore()
+
+ const { fetch: fetchSubs, subscriptions } = useSubscription()
+ fetchSubs()
+
const [entries, setEntries] = useState([])
useEffect(() => {
@@ -32,7 +35,7 @@ export default function FeedListView() {
const res = await axios.get("https://api.feedbin.com/v2/entries.json", { auth: credential })
const entriesRes = res.data as Entry[]
setEntries(entriesRes)
- console.log(entries)
+ console.log(entriesRes[3])
} catch (e) {
console.log("`fetchList has an error`")
console.log(e)
@@ -45,7 +48,7 @@ export default function FeedListView() {
entries.map(entry =>
{entry.title}
- {entry.author}
+ {entry.author && {entry.author} · }{subscriptions[entry.feed_id].title}
)
diff --git a/store/index.ts b/store/index.ts
index 34051f0..593ca2d 100644
--- a/store/index.ts
+++ b/store/index.ts
@@ -1,3 +1,4 @@
import useAuthStore from './useAuthStore'
+import useSubscription from './useSubscription'
-export { useAuthStore }
+export { useAuthStore, useSubscription }
diff --git a/store/useSubscription.ts b/store/useSubscription.ts
new file mode 100644
index 0000000..1f7a946
--- /dev/null
+++ b/store/useSubscription.ts
@@ -0,0 +1,28 @@
+import { create } from 'zustand'
+import axios from 'axios'
+import useAuthStore from './useAuthStore'
+
+type SubState = {
+ subscriptions: { [key: number]: Subscription }
+ fetch: () => Promise
+}
+
+export default create(set => ({
+ subscriptions: {},
+ fetch: async () => {
+ const credential = useAuthStore.getState().credential
+ if (!credential) return
+ try {
+ const res = await axios.get('https://api.feedbin.com/v2/subscriptions.json', { auth: credential })
+ let subs: { [key: number]: Subscription } = {}
+ for (let i in res.data) {
+ subs[res.data[i].feed_id] = res.data[i]
+ }
+ set({ subscriptions: subs })
+ // console.log(subs)
+ } catch(e) {
+ console.log("`fetch` (useSubscription) has encounted an error")
+ console.log(e)
+ }
+ }
+}))