From 7f8f53b08753adbc4f6ffdd3a61ec3a6bd3a4899 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 16 Jan 2023 16:09:51 -0600 Subject: Move menu controls into post footers and improve meta info rendering --- src/view/com/post-thread/PostThreadItem.tsx | 18 ++++++----- src/view/com/post/Post.tsx | 10 +++--- src/view/com/posts/FeedItem.tsx | 10 +++--- src/view/com/util/PostCtrls.tsx | 24 +++++++++++++- src/view/com/util/PostMeta.tsx | 49 +++++++++-------------------- 5 files changed, 58 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index e93f77e3c..d1fb44086 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -222,11 +222,16 @@ export const PostThreadItem = observer(function PostThreadItem({ @@ -276,15 +281,10 @@ export const PostThreadItem = observer(function PostThreadItem({ {item.post.author.viewer?.muted ? ( @@ -304,14 +304,16 @@ export const PostThreadItem = observer(function PostThreadItem({ )} diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index 032d5c147..c9f4d3a16 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -154,15 +154,10 @@ export const Post = observer(function Post({ {replyHref !== '' && ( @@ -198,6 +193,9 @@ export const Post = observer(function Post({ )} diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index f7db827bd..96ecae1b5 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -177,15 +177,10 @@ export const FeedItem = observer(function ({ {!isChild && replyHref !== '' && ( @@ -226,6 +221,9 @@ export const FeedItem = observer(function ({ )} diff --git a/src/view/com/util/PostCtrls.tsx b/src/view/com/util/PostCtrls.tsx index 4bc33110e..566bd261f 100644 --- a/src/view/com/util/PostCtrls.tsx +++ b/src/view/com/util/PostCtrls.tsx @@ -3,11 +3,15 @@ import {Animated, StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import ReactNativeHapticFeedback from 'react-native-haptic-feedback' import {Text} from './text/Text' +import {PostDropdownBtn} from './forms/DropdownButton' import {UpIcon, UpIconSolid, CommentBottomArrow} from '../../lib/icons' import {s, colors} from '../../lib/styles' import {useAnimatedValue} from '../../lib/hooks/useAnimatedValue' interface PostCtrlsOpts { + itemHref: string + itemTitle: string + isAuthor: boolean big?: boolean replyCount?: number repostCount?: number @@ -17,6 +21,8 @@ interface PostCtrlsOpts { onPressReply: () => void onPressToggleRepost: () => void onPressToggleUpvote: () => void + onCopyPostText: () => void + onDeletePost: () => void } const redgray = '#7A6161' @@ -169,7 +175,23 @@ export function PostCtrls(opts: PostCtrlsOpts) { ) : undefined} - + + {opts.big ? undefined : ( + + + + )} + ) } diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index 4cf6cb00c..6c150a677 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -1,28 +1,18 @@ import React from 'react' -import {StyleSheet, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Platform, StyleSheet, View} from 'react-native' import {Link} from '../util/Link' import {Text} from './text/Text' -import {PostDropdownBtn} from './forms/DropdownButton' -import {s} from '../../lib/styles' import {ago} from '../../../lib/strings' -import {useTheme} from '../../lib/ThemeContext' import {usePalette} from '../../lib/hooks/usePalette' interface PostMetaOpts { - itemHref: string - itemTitle: string authorHref: string authorHandle: string authorDisplayName: string | undefined timestamp: string - isAuthor: boolean - onCopyPostText: () => void - onDeletePost: () => void } export function PostMeta(opts: PostMetaOpts) { - const theme = useTheme() const pal = usePalette('default') let displayName = opts.authorDisplayName || opts.authorHandle let handle = opts.authorHandle @@ -31,13 +21,15 @@ export function PostMeta(opts: PostMetaOpts) { // Android simply cannot handle the truncation case we need // so we have to do it manually here // -prf - if (displayName.length + handle.length > 26) { - if (displayName.length > 26) { - displayName = displayName.slice(0, 23) + '...' - } else { - handle = handle.slice(0, 23 - displayName.length) + '...' - if (handle.endsWith('....')) { - handle = handle.slice(0, -4) + '...' + if (Platform.OS === 'android') { + if (displayName.length + handle.length > 26) { + if (displayName.length > 26) { + displayName = displayName.slice(0, 23) + '...' + } else { + handle = handle.slice(0, 23 - displayName.length) + '...' + if (handle.endsWith('....')) { + handle = handle.slice(0, -4) + '...' + } } } } @@ -45,7 +37,7 @@ export function PostMeta(opts: PostMetaOpts) { return ( @@ -60,20 +52,6 @@ export function PostMeta(opts: PostMetaOpts) { · {ago(opts.timestamp)} - - - - ) } @@ -81,11 +59,14 @@ export function PostMeta(opts: PostMetaOpts) { const styles = StyleSheet.create({ meta: { flexDirection: 'row', - alignItems: 'center', + alignItems: 'baseline', paddingTop: 0, paddingBottom: 2, }, metaItem: { paddingRight: 5, }, + maxWidth: { + maxWidth: '70%', + }, }) -- cgit 1.4.1