This commit is contained in:
Eric Bailey
2025-06-10 15:24:58 -05:00
parent 25011cac0a
commit 88a8e80a47
2 changed files with 10 additions and 10 deletions
@@ -1,4 +1,4 @@
import {memo,useCallback, useMemo} from 'react' import {memo, useCallback, useMemo} from 'react'
import {type GestureResponderEvent, Text as RNText, View} from 'react-native' import {type GestureResponderEvent, Text as RNText, View} from 'react-native'
import { import {
type AppBskyFeedDefs, type AppBskyFeedDefs,
@@ -1,4 +1,4 @@
import React, {memo, useMemo} from 'react' import {memo, type ReactNode, useCallback, useMemo, useState} from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import { import {
type AppBskyFeedDefs, type AppBskyFeedDefs,
@@ -123,7 +123,7 @@ const ThreadItemPostOuterWrapper = memo(function ThreadItemPostOuterWrapper({
overrides, overrides,
children, children,
}: Pick<ThreadItemPostProps, 'item' | 'overrides'> & { }: Pick<ThreadItemPostProps, 'item' | 'overrides'> & {
children: React.ReactNode children: ReactNode
}) { }) {
const t = useTheme() const t = useTheme()
const showTopBorder = const showTopBorder =
@@ -185,7 +185,7 @@ const ThreadItemPostInner = memo(function ThreadItemPostInner({
threadgateRecord, threadgateRecord,
}: ThreadItemPostProps & { }: ThreadItemPostProps & {
postShadow: Shadow<AppBskyFeedDefs.PostView> postShadow: Shadow<AppBskyFeedDefs.PostView>
}): React.ReactNode { }) {
const t = useTheme() const t = useTheme()
const pal = usePalette('default') const pal = usePalette('default')
const {_} = useLingui() const {_} = useLingui()
@@ -203,18 +203,18 @@ const ThreadItemPostInner = memo(function ThreadItemPostInner({
}), }),
[record], [record],
) )
const [limitLines, setLimitLines] = React.useState( const [limitLines, setLimitLines] = useState(
() => countLines(richText?.text) >= MAX_POST_LINES, () => countLines(richText?.text) >= MAX_POST_LINES,
) )
const threadRootUri = record.reply?.root?.uri || post.uri const threadRootUri = record.reply?.root?.uri || post.uri
const postHref = React.useMemo(() => { const postHref = useMemo(() => {
const urip = new AtUri(post.uri) const urip = new AtUri(post.uri)
return makeProfileLink(post.author, 'post', urip.rkey) return makeProfileLink(post.author, 'post', urip.rkey)
}, [post.uri, post.author]) }, [post.uri, post.author])
const threadgateHiddenReplies = useMergedThreadgateHiddenReplies({ const threadgateHiddenReplies = useMergedThreadgateHiddenReplies({
threadgateRecord, threadgateRecord,
}) })
const additionalPostAlerts: AppModerationCause[] = React.useMemo(() => { const additionalPostAlerts: AppModerationCause[] = useMemo(() => {
const isPostHiddenByThreadgate = threadgateHiddenReplies.has(post.uri) const isPostHiddenByThreadgate = threadgateHiddenReplies.has(post.uri)
const isControlledByViewer = const isControlledByViewer =
new AtUri(threadRootUri).host === currentAccount?.did new AtUri(threadRootUri).host === currentAccount?.did
@@ -229,7 +229,7 @@ const ThreadItemPostInner = memo(function ThreadItemPostInner({
: [] : []
}, [post, currentAccount?.did, threadgateHiddenReplies, threadRootUri]) }, [post, currentAccount?.did, threadgateHiddenReplies, threadRootUri])
const onPressReply = React.useCallback(() => { const onPressReply = useCallback(() => {
openComposer({ openComposer({
replyTo: { replyTo: {
uri: post.uri, uri: post.uri,
@@ -243,7 +243,7 @@ const ThreadItemPostInner = memo(function ThreadItemPostInner({
}) })
}, [openComposer, post, record, onPostSuccess, moderation]) }, [openComposer, post, record, onPostSuccess, moderation])
const onPressShowMore = React.useCallback(() => { const onPressShowMore = useCallback(() => {
setLimitLines(false) setLimitLines(false)
}, [setLimitLines]) }, [setLimitLines])
@@ -346,7 +346,7 @@ const ThreadItemPostInner = memo(function ThreadItemPostInner({
) )
}) })
function SubtleHover({children}: {children: React.ReactNode}) { function SubtleHover({children}: {children: ReactNode}) {
const { const {
state: hover, state: hover,
onIn: onHoverIn, onIn: onHoverIn,