about summary refs log tree commit diff
path: root/src/view/com/post/Post.tsx
diff options
context:
space:
mode:
authorJoão Ferreiro <ferreiro@pinkroom.dev>2022-11-29 10:29:19 +0000
committerJoão Ferreiro <ferreiro@pinkroom.dev>2022-11-29 10:29:19 +0000
commit77ea3bfd0a28f76651ed425cf733abcf01ecaa24 (patch)
tree53f6806d2ca00366f6f3298e378aa6a59ca17e83 /src/view/com/post/Post.tsx
parent3ce113f1076bbeeffc20888b3a28b2680ada8ab5 (diff)
parent88c868dd808d204fc29deb162609de984745b951 (diff)
downloadvoidsky-77ea3bfd0a28f76651ed425cf733abcf01ecaa24.tar.zst
Merge branch 'main' into upload-image
Diffstat (limited to 'src/view/com/post/Post.tsx')
-rw-r--r--src/view/com/post/Post.tsx27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx
index 4d668cac3..736b40157 100644
--- a/src/view/com/post/Post.tsx
+++ b/src/view/com/post/Post.tsx
@@ -1,8 +1,15 @@
 import React, {useState, useEffect} from 'react'
+import {
+  ActivityIndicator,
+  StyleProp,
+  StyleSheet,
+  Text,
+  View,
+  ViewStyle,
+} from 'react-native'
 import {observer} from 'mobx-react-lite'
 import {AtUri} from '../../../third-party/uri'
 import * as PostType from '../../../third-party/api/src/client/types/app/bsky/feed/post'
-import {ActivityIndicator, StyleSheet, Text, View} from 'react-native'
 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
 import {PostThreadViewModel} from '../../../state/models/post-thread-view'
 import {Link} from '../util/Link'
@@ -15,19 +22,27 @@ import {UserAvatar} from '../util/UserAvatar'
 import {useStores} from '../../../state'
 import {s, colors} from '../../lib/styles'
 
-export const Post = observer(function Post({uri}: {uri: string}) {
+export const Post = observer(function Post({
+  uri,
+  initView,
+  style,
+}: {
+  uri: string
+  initView?: PostThreadViewModel
+  style?: StyleProp<ViewStyle>
+}) {
   const store = useStores()
-  const [view, setView] = useState<PostThreadViewModel | undefined>()
+  const [view, setView] = useState<PostThreadViewModel | undefined>(initView)
   const [deleted, setDeleted] = useState(false)
 
   useEffect(() => {
-    if (view?.params.uri === uri) {
+    if (initView || view?.params.uri === uri) {
       return // no change needed? or trigger refresh?
     }
     const newView = new PostThreadViewModel(store, {uri, depth: 0})
     setView(newView)
     newView.setup().catch(err => console.error('Failed to fetch post', err))
-  }, [uri, view?.params.uri, store])
+  }, [initView, uri, view?.params.uri, store])
 
   // deleted
   // =
@@ -109,7 +124,7 @@ export const Post = observer(function Post({uri}: {uri: string}) {
   }
 
   return (
-    <Link style={styles.outer} href={itemHref} title={itemTitle}>
+    <Link style={[styles.outer, style]} href={itemHref} title={itemTitle}>
       <View style={styles.layout}>
         <View style={styles.layoutAvi}>
           <Link href={authorHref} title={authorTitle}>