Skip to content

Commit

Permalink
[Neue] Post avi, PostMeta cleanup (#5450)
Browse files Browse the repository at this point in the history
* Support emoji in text with custom font

* Add emoji support to elements that need it

* Remove unused file causing lint failure

* Add web only link variant

* Refactor PostMeta

* Reduce avi size in feeds

* Fix alignment, emoji, in PostMeta

* Smaller avis in notifications

* Shrink post placeholder avi

* Handle the handle again

* Link cleanup

* Cleanup unused props

* Fix text wrapping in timestamp

* Fix underline color

* Tighten up spacing

* Web only whiteSpace
  • Loading branch information
estrattonbailey authored Sep 25, 2024
1 parent 2429d5d commit b38d469
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 117 deletions.
4 changes: 2 additions & 2 deletions src/App.web.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'lib/sentry' // must be near top
import 'view/icons'
import '#/lib/sentry' // must be near top
import '#/view/icons'
import './style.css'

import React, {useEffect, useState} from 'react'
Expand Down
36 changes: 28 additions & 8 deletions src/components/Link.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {sanitizeUrl} from '@braintree/sanitize-url'
import {StackActions, useLinkProps} from '@react-navigation/native'

import {BSKY_DOWNLOAD_URL} from '#/lib/constants'
import {useNavigationDeduped} from '#/lib/hooks/useNavigationDeduped'
import {AllNavigatorParams} from '#/lib/routes/types'
import {shareUrl} from '#/lib/sharing'
import {
Expand All @@ -17,11 +18,10 @@ import {
isExternalUrl,
linkRequiresWarning,
} from '#/lib/strings/url-helpers'
import {isNative} from '#/platform/detection'
import {isNative, isWeb} from '#/platform/detection'
import {shouldClickOpenNewTab} from '#/platform/urls'
import {useModalControls} from '#/state/modals'
import {useOpenLink} from '#/state/preferences/in-app-browser'
import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped'
import {atoms as a, flatten, TextStyleProp, useTheme, web} from '#/alf'
import {Button, ButtonProps} from '#/components/Button'
import {useInteractionState} from '#/components/hooks/useInteractionState'
Expand Down Expand Up @@ -244,7 +244,10 @@ export function Link({
export type InlineLinkProps = React.PropsWithChildren<
BaseLinkProps & TextStyleProp & Pick<TextProps, 'selectable'>
> &
Pick<ButtonProps, 'label'>
Pick<ButtonProps, 'label'> & {
disableUnderline?: boolean
title?: TextProps['title']
}

export function InlineLinkText({
children,
Expand All @@ -257,6 +260,7 @@ export function InlineLinkText({
selectable,
label,
shareOnLongPress,
disableUnderline,
...rest
}: InlineLinkProps) {
const t = useTheme()
Expand Down Expand Up @@ -290,11 +294,12 @@ export function InlineLinkText({
{...rest}
style={[
{color: t.palette.primary_500},
(hovered || focused || pressed) && {
...web({outline: 0}),
textDecorationLine: 'underline',
textDecorationColor: flattenedStyle.color ?? t.palette.primary_500,
},
(hovered || focused || pressed) &&
!disableUnderline && {
...web({outline: 0}),
textDecorationLine: 'underline',
textDecorationColor: flattenedStyle.color ?? t.palette.primary_500,
},
flattenedStyle,
]}
role="link"
Expand Down Expand Up @@ -365,3 +370,18 @@ export function BaseLink({
</Pressable>
)
}

export function WebOnlyInlineLinkText({
children,
to,
onPress,
...props
}: InlineLinkProps) {
return isWeb ? (
<InlineLinkText {...props} to={to} onPress={onPress}>
{children}
</InlineLinkText>
) : (
<Text {...props}>{children}</Text>
)
}
1 change: 0 additions & 1 deletion src/screens/Messages/Conversation/MessageInputEmbed.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ export function MessageInputEmbed({
showAvatar
author={post.author}
moderation={moderation}
authorHasWarning={!!post.author.labels?.length}
timestamp={post.indexedAt}
postHref={itemHref}
style={a.flex_0}
Expand Down
8 changes: 2 additions & 6 deletions src/view/com/post-thread/PostThreadItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -558,18 +558,14 @@ let PostThreadItemLoaded = ({
<PostMeta
author={post.author}
moderation={moderation}
authorHasWarning={!!post.author.labels?.length}
timestamp={post.indexedAt}
postHref={postHref}
showAvatar={isThreadedChild}
avatarModeration={moderation.ui('avatar')}
avatarSize={28}
displayNameType="md-bold"
displayNameStyle={isThreadedChild && s.ml2}
avatarSize={24}
style={
isThreadedChild && {
alignItems: 'center',
paddingBottom: isWeb ? 5 : 2,
paddingBottom: isWeb ? 5 : 4,
}
}
/>
Expand Down
3 changes: 1 addition & 2 deletions src/view/com/post/Post.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ function PostInner({
<View style={styles.layoutAvi}>
<AviFollowButton author={post.author} moderation={moderation}>
<PreviewableUserAvatar
size={52}
size={42}
profile={post.author}
moderation={moderation.ui('avatar')}
type={post.author.associated?.labeler ? 'labeler' : 'user'}
Expand All @@ -174,7 +174,6 @@ function PostInner({
<PostMeta
author={post.author}
moderation={moderation}
authorHasWarning={!!post.author.labels?.length}
timestamp={post.indexedAt}
postHref={itemHref}
/>
Expand Down
5 changes: 2 additions & 3 deletions src/view/com/posts/FeedItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ let FeedItemInner = ({
onBeforePress={onBeforePress}
dataSet={{feedContext}}>
<View style={{flexDirection: 'row', gap: 10, paddingLeft: 8}}>
<View style={{width: 52}}>
<View style={{width: 42}}>
{isThreadChild && (
<View
style={[
Expand Down Expand Up @@ -345,7 +345,7 @@ let FeedItemInner = ({
<View style={styles.layoutAvi}>
<AviFollowButton author={post.author} moderation={moderation}>
<PreviewableUserAvatar
size={52}
size={42}
profile={post.author}
moderation={moderation.ui('avatar')}
type={post.author.associated?.labeler ? 'labeler' : 'user'}
Expand All @@ -369,7 +369,6 @@ let FeedItemInner = ({
<PostMeta
author={post.author}
moderation={moderation}
authorHasWarning={!!post.author.labels?.length}
timestamp={post.indexedAt}
postHref={href}
onOpenAuthor={onOpenAuthor}
Expand Down
6 changes: 3 additions & 3 deletions src/view/com/posts/FeedSlice.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import Svg, {Circle, Line} from 'react-native-svg'
import {AtUri} from '@atproto/api'
import {Trans} from '@lingui/macro'

import {usePalette} from '#/lib/hooks/usePalette'
import {makeProfileLink} from '#/lib/routes/links'
import {FeedPostSlice} from '#/state/queries/post-feed'
import {usePalette} from 'lib/hooks/usePalette'
import {makeProfileLink} from 'lib/routes/links'
import {Link} from '../util/Link'
import {Text} from '../util/text/Text'
import {FeedItem} from './FeedItem'
Expand Down Expand Up @@ -146,7 +146,7 @@ const styles = StyleSheet.create({
paddingLeft: 18,
},
viewFullThreadDots: {
width: 52,
width: 42,
alignItems: 'center',
},
})
Expand Down
10 changes: 5 additions & 5 deletions src/view/com/util/LoadingPlaceholder.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import {
ViewStyle,
} from 'react-native'

import {usePalette} from 'lib/hooks/usePalette'
import {s} from 'lib/styles'
import {useTheme} from 'lib/ThemeContext'
import {usePalette} from '#/lib/hooks/usePalette'
import {s} from '#/lib/styles'
import {useTheme} from '#/lib/ThemeContext'
import {atoms as a, useTheme as useTheme_NEW} from '#/alf'
import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '#/components/icons/Bubble'
import {
Expand Down Expand Up @@ -53,8 +53,8 @@ export function PostLoadingPlaceholder({
return (
<View style={[styles.post, pal.view, style]}>
<LoadingPlaceholder
width={52}
height={52}
width={42}
height={42}
style={[
styles.avatar,
{
Expand Down
Loading

0 comments on commit b38d469

Please sign in to comment.