diff options
author | João Ferreiro <ferreiro@pinkroom.dev> | 2022-11-29 10:29:19 +0000 |
---|---|---|
committer | João Ferreiro <ferreiro@pinkroom.dev> | 2022-11-29 10:29:19 +0000 |
commit | 77ea3bfd0a28f76651ed425cf733abcf01ecaa24 (patch) | |
tree | 53f6806d2ca00366f6f3298e378aa6a59ca17e83 /src/view/com/post/Post.tsx | |
parent | 3ce113f1076bbeeffc20888b3a28b2680ada8ab5 (diff) | |
parent | 88c868dd808d204fc29deb162609de984745b951 (diff) | |
download | voidsky-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.tsx | 27 |
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}> |