diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-10-30 19:26:23 -0700 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-10-30 19:26:23 -0700 |
commit | 40752982da07ff05001129e26f3ea1bca39c7ad9 (patch) | |
tree | 57ef81428b1595974e01fc8a7d21f6d6e2991d7c /src/view/com/post-thread/PostThreadItem.tsx | |
parent | 68c809b09a056fd5e28f15fe6a114dfbb8295ba4 (diff) | |
parent | 7fa0708e0e471c6c04864400f7e212147ba73765 (diff) | |
download | voidsky-40752982da07ff05001129e26f3ea1bca39c7ad9.tar.zst |
Merge branch 'main' of https://github.com/haideralipunjabi/social-app into main
Diffstat (limited to 'src/view/com/post-thread/PostThreadItem.tsx')
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 75d756d61..8976a7e2c 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -8,7 +8,7 @@ import { FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' import {PostThreadItemModel} from 'state/models/content/post-thread-item' -import {Link} from '../util/Link' +import {Link, TextLink} from '../util/Link' import {RichText} from '../util/text/RichText' import {Text} from '../util/text/Text' import {PostDropdownBtn} from '../util/forms/PostDropdownBtn' @@ -18,7 +18,7 @@ import {s} from 'lib/styles' import {niceDate} from 'lib/strings/time' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {pluralize} from 'lib/strings/helpers' +import {countLines, pluralize} from 'lib/strings/helpers' import {isEmbedByEmbedder} from 'lib/embeds' import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' import {useStores} from 'state/index' @@ -35,6 +35,7 @@ import {formatCount} from '../util/numeric/format' import {TimeElapsed} from 'view/com/util/TimeElapsed' import {makeProfileLink} from 'lib/routes/links' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {MAX_POST_LINES} from 'lib/constants' export const PostThreadItem = observer(function PostThreadItem({ item, @@ -50,6 +51,9 @@ export const PostThreadItem = observer(function PostThreadItem({ const pal = usePalette('default') const store = useStores() const [deleted, setDeleted] = React.useState(false) + const [limitLines, setLimitLines] = React.useState( + countLines(item.richText?.text) >= MAX_POST_LINES, + ) const styles = useStyles() const record = item.postRecord const hasEngagement = item.post.likeCount || item.post.repostCount @@ -151,6 +155,10 @@ export const PostThreadItem = observer(function PostThreadItem({ ) }, [item, store]) + const onPressShowMore = React.useCallback(() => { + setLimitLines(false) + }, [setLimitLines]) + if (!record) { return <ErrorMessage message="Invalid or unsupported post record" /> } @@ -489,9 +497,18 @@ export const PostThreadItem = observer(function PostThreadItem({ richText={item.richText} style={[pal.text, s.flex1]} lineHeight={1.3} + numberOfLines={limitLines ? MAX_POST_LINES : undefined} /> </View> ) : undefined} + {limitLines ? ( + <TextLink + text="Show More" + style={pal.link} + onPress={onPressShowMore} + href="#" + /> + ) : undefined} {item.post.embed && ( <ContentHider style={styles.contentHider} |