diff options
author | Hailey <me@haileyok.com> | 2024-07-08 10:06:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-08 18:06:00 +0100 |
commit | f8a59e10dd347e9187aa4414a0ece04eff3b9bc3 (patch) | |
tree | a689cdf9271a356113ace131aff0cd2bae68f7a5 /src/view/com | |
parent | d5503d17de4a3b8f2d769f7819baf47cf9b0a209 (diff) | |
download | voidsky-f8a59e10dd347e9187aa4414a0ece04eff3b9bc3.tar.zst |
Fix RTL text rendering for display names (#4747)
* header display name rtl support * highlighted post rtl * move `NON_BREAKING_SPACE` to an external constant * rtl support in search dropdown * profile card rtl * old profile card rtl * hover card * wizard list card * new chat * account card * chat header * clean up notifications * just force LTR on meta display name
Diffstat (limited to 'src/view/com')
-rw-r--r-- | src/view/com/notifications/FeedItem.tsx | 9 | ||||
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 2 | ||||
-rw-r--r-- | src/view/com/profile/ProfileCard.tsx | 2 | ||||
-rw-r--r-- | src/view/com/util/PostMeta.tsx | 18 |
4 files changed, 16 insertions, 15 deletions
diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index 1932efbd5..d31962ff3 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -58,6 +58,7 @@ import {useNavigation} from '@react-navigation/native' import {parseTenorGif} from '#/lib/strings/embed-player' import {logger} from '#/logger' import {NavigationProp} from 'lib/routes/types' +import {forceLTR} from 'lib/strings/bidi' import {DM_SERVICE_HEADERS} from 'state/queries/messages/const' import {useAgent} from 'state/session' import {Button, ButtonText} from '#/components/Button' @@ -274,13 +275,15 @@ let FeedItem = ({ showDmButton={item.type === 'starterpack-joined' || isFollowBack} /> <ExpandedAuthorsList visible={isAuthorsExpanded} authors={authors} /> - <Text style={styles.meta}> + <Text style={[styles.meta, a.self_start]}> <TextLink key={authors[0].href} style={[pal.text, s.bold]} href={authors[0].href} - text={sanitizeDisplayName( - authors[0].profile.displayName || authors[0].profile.handle, + text={forceLTR( + sanitizeDisplayName( + authors[0].profile.displayName || authors[0].profile.handle, + ), )} disableMismatchWarning /> diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 0f5350e79..4e6ed27be 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -281,7 +281,7 @@ let PostThreadItemLoaded = ({ <Link style={s.flex1} href={authorHref} title={authorTitle}> <Text type="xl-bold" - style={[pal.text]} + style={[pal.text, a.self_start]} numberOfLines={1} lineHeight={1.2}> {sanitizeDisplayName( diff --git a/src/view/com/profile/ProfileCard.tsx b/src/view/com/profile/ProfileCard.tsx index 7332d452a..d18103f30 100644 --- a/src/view/com/profile/ProfileCard.tsx +++ b/src/view/com/profile/ProfileCard.tsx @@ -97,7 +97,7 @@ export function ProfileCard({ <View style={styles.layoutContent}> <Text type="lg" - style={[s.bold, pal.text]} + style={[s.bold, pal.text, a.self_start]} numberOfLines={1} lineHeight={1.2}> {sanitizeDisplayName( diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index aec787e4e..95168e8b3 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -6,6 +6,8 @@ import {useQueryClient} from '@tanstack/react-query' import {precacheProfile} from '#/state/queries/profile' import {usePalette} from 'lib/hooks/usePalette' import {makeProfileLink} from 'lib/routes/links' +import {forceLTR} from 'lib/strings/bidi' +import {NON_BREAKING_SPACE} from 'lib/strings/constants' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {niceDate} from 'lib/strings/time' @@ -32,8 +34,6 @@ interface PostMetaOpts { style?: StyleProp<ViewStyle> } -const NON_BREAKING_SPACE = '\u00A0' - let PostMeta = (opts: PostMetaOpts): React.ReactNode => { const pal = usePalette('default') const displayName = opts.author.displayName || opts.author.handle @@ -70,14 +70,12 @@ let PostMeta = (opts: PostMetaOpts): React.ReactNode => { style={[pal.text]} lineHeight={1.2} disableMismatchWarning - text={ - <> - {sanitizeDisplayName( - displayName, - opts.moderation?.ui('displayName'), - )} - </> - } + text={forceLTR( + sanitizeDisplayName( + displayName, + opts.moderation?.ui('displayName'), + ), + )} href={profileLink} onBeforePress={onBeforePressAuthor} /> |