Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix overflow on posts (#4899)

* overflow posts, via contentHider

* margin->padding for a bit more leeway

* overflow notifications

* overflow on header

* revert from contenthider, put on text in all places

* fix zalgo text in handle in composer

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>

authored by

Samuel Newman
Samuel Newman
and committed by
GitHub
e7a0055a ae25cb33

+15 -32
+2 -20
src/components/moderation/ContentHider.tsx
··· 1 1 import React from 'react' 2 - import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' 2 + import {StyleProp, View, ViewStyle} from 'react-native' 3 3 import {ModerationUI} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' ··· 40 40 41 41 if (!blur || (ignoreMute && isJustAMute(modui))) { 42 42 return ( 43 - <View testID={testID} style={[styles.outer, style]}> 43 + <View testID={testID} style={style}> 44 44 {children} 45 45 </View> 46 46 ) ··· 163 163 </View> 164 164 ) 165 165 } 166 - 167 - const styles = StyleSheet.create({ 168 - outer: {}, 169 - cover: { 170 - flexDirection: 'row', 171 - alignItems: 'center', 172 - gap: 6, 173 - borderRadius: 8, 174 - marginTop: 4, 175 - paddingVertical: 14, 176 - paddingLeft: 14, 177 - paddingRight: 18, 178 - }, 179 - showBtn: { 180 - marginLeft: 'auto', 181 - alignSelf: 'center', 182 - }, 183 - })
+1 -1
src/screens/Profile/Header/ProfileHeaderStandard.tsx
··· 157 157 hideBackButton={hideBackButton} 158 158 isPlaceholderProfile={isPlaceholderProfile}> 159 159 <View 160 - style={[a.px_lg, a.pt_md, a.pb_sm]} 160 + style={[a.px_lg, a.pt_md, a.pb_sm, a.overflow_hidden]} 161 161 pointerEvents={isIOS ? 'auto' : 'box-none'}> 162 162 <View 163 163 style={[
+1 -1
src/view/com/composer/ComposerReplyTo.tsx
··· 91 91 type={replyTo.author.associated?.labeler ? 'labeler' : 'user'} 92 92 /> 93 93 <View style={styles.replyToPost}> 94 - <Text type="xl-medium" style={t.atoms.text}> 94 + <Text type="xl-medium" style={t.atoms.text} numberOfLines={1}> 95 95 {sanitizeDisplayName( 96 96 replyTo.author.displayName || sanitizeHandle(replyTo.author.handle), 97 97 )}
+2 -4
src/view/com/notifications/FeedItem.tsx
··· 253 253 borderColor: pal.colors.unreadNotifBorder, 254 254 }, 255 255 {borderTopWidth: hideTopBorder ? 0 : StyleSheet.hairlineWidth}, 256 + a.overflow_hidden, 256 257 ]} 257 258 href={itemHref} 258 259 noFeedback ··· 545 546 }, [heightInterp, visible]) 546 547 547 548 return ( 548 - <Animated.View style={[heightStyle, styles.overflowHidden]}> 549 + <Animated.View style={[a.overflow_hidden, heightStyle]}> 549 550 {visible && 550 551 authors.map(author => ( 551 552 <NewLink ··· 641 642 } 642 643 643 644 const styles = StyleSheet.create({ 644 - overflowHidden: { 645 - overflow: 'hidden', 646 - }, 647 645 pointer: isWeb 648 646 ? { 649 647 // @ts-ignore web only
+1
src/view/com/post-thread/PostThreadItem.tsx
··· 742 742 flexWrap: 'wrap', 743 743 paddingBottom: 4, 744 744 paddingRight: 10, 745 + overflow: 'hidden', 745 746 }, 746 747 postTextLargeContainer: { 747 748 paddingHorizontal: 0,
+7 -6
src/view/com/post/Post.tsx
··· 12 12 import {useLingui} from '@lingui/react' 13 13 import {useQueryClient} from '@tanstack/react-query' 14 14 15 + import {MAX_POST_LINES} from '#/lib/constants' 16 + import {usePalette} from '#/lib/hooks/usePalette' 15 17 import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 18 + import {makeProfileLink} from '#/lib/routes/links' 19 + import {countLines} from '#/lib/strings/helpers' 20 + import {colors, s} from '#/lib/styles' 16 21 import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' 17 22 import {useModerationOpts} from '#/state/preferences/moderation-opts' 23 + import {precacheProfile} from '#/state/queries/profile' 18 24 import {useSession} from '#/state/session' 19 25 import {useComposerControls} from '#/state/shell/composer' 20 - import {MAX_POST_LINES} from 'lib/constants' 21 - import {usePalette} from 'lib/hooks/usePalette' 22 - import {makeProfileLink} from 'lib/routes/links' 23 - import {countLines} from 'lib/strings/helpers' 24 - import {colors, s} from 'lib/styles' 25 - import {precacheProfile} from 'state/queries/profile' 26 26 import {AviFollowButton} from '#/view/com/posts/AviFollowButton' 27 27 import {atoms as a} from '#/alf' 28 28 import {ProfileHoverCard} from '#/components/ProfileHoverCard' ··· 280 280 flexDirection: 'row', 281 281 alignItems: 'center', 282 282 flexWrap: 'wrap', 283 + overflow: 'hidden', 283 284 }, 284 285 replyLine: { 285 286 position: 'absolute',
+1
src/view/com/posts/FeedItem.tsx
··· 544 544 alignItems: 'center', 545 545 flexWrap: 'wrap', 546 546 paddingBottom: 2, 547 + overflow: 'hidden', 547 548 }, 548 549 contentHiderChild: { 549 550 marginTop: 6,