From 8bddafc492080a6ee97be24d98dd420fbc2ea60d Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 27 Jun 2025 12:02:16 +0300 Subject: [PATCH] fix layout shifting in notifs --- src/view/com/feeds/FeedSourceCard.tsx | 60 ++++++++----------- .../notifications/NotificationFeedItem.tsx | 2 +- src/view/com/util/LoadingPlaceholder.tsx | 12 +--- src/view/screens/SavedFeeds.tsx | 18 ++---- 4 files changed, 34 insertions(+), 58 deletions(-) diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index bf27d29a9d..6ea02230ed 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -2,7 +2,6 @@ import { Linking, Pressable, type StyleProp, - StyleSheet, View, type ViewStyle, } from 'react-native' @@ -15,9 +14,7 @@ import { import {Plural, Trans} from '@lingui/macro' import {useNavigationDeduped} from '#/lib/hooks/useNavigationDeduped' -import {usePalette} from '#/lib/hooks/usePalette' import {sanitizeHandle} from '#/lib/strings/handles' -import {s} from '#/lib/styles' import { type FeedSourceInfo, hydrateFeedGenerator, @@ -25,11 +22,11 @@ import { useFeedSourceInfoQuery, } from '#/state/queries/feed' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' -import {Text} from '#/view/com/util/text/Text' import {UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, useTheme} from '#/alf' import {shouldClickOpenNewTab} from '#/components/Link' import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' type FeedSourceCardProps = { feedUri: string @@ -90,8 +87,6 @@ export function FeedSourceCardLoaded({ hideTopBorder?: boolean }) { const t = useTheme() - const pal = usePalette('default') - const navigation = useNavigationDeduped() /* @@ -102,30 +97,16 @@ export function FeedSourceCardLoaded({ */ if (!feed) return ( - - {showMinimalPlaceholder ? ( - - ) : ( - - )} - + t.atoms.border_contrast_low, + !(showMinimalPlaceholder || hideTopBorder) && a.border_t, + a.flex_1, + style, + ]} + showTopBorder={false} + showLowerPlaceholder={!showMinimalPlaceholder} + /> ) return ( @@ -168,14 +149,19 @@ export function FeedSourceCardLoaded({ }} key={feed.uri}> - + - - + + {feed.displayName} - + {feed.type === 'feed' ? ( Feed by {sanitizeHandle(feed.creatorHandle, '@')} ) : ( @@ -194,7 +180,13 @@ export function FeedSourceCardLoaded({ ) : null} {showLikes && feed.type === 'feed' ? ( - + Liked by{' '} diff --git a/src/view/com/notifications/NotificationFeedItem.tsx b/src/view/com/notifications/NotificationFeedItem.tsx index 89e2d20e76..43a4aaa34f 100644 --- a/src/view/com/notifications/NotificationFeedItem.tsx +++ b/src/view/com/notifications/NotificationFeedItem.tsx @@ -675,6 +675,7 @@ let NotificationFeedItem = ({ t.atoms.bg, t.atoms.border_contrast_low, a.border, + a.p_md, styles.feedcard, ]} showLikes @@ -1000,7 +1001,6 @@ const styles = StyleSheet.create({ }, feedcard: { borderRadius: 8, - paddingVertical: 12, marginTop: 6, }, addedContainer: { diff --git a/src/view/com/util/LoadingPlaceholder.tsx b/src/view/com/util/LoadingPlaceholder.tsx index 03dc35fc5a..486f353f01 100644 --- a/src/view/com/util/LoadingPlaceholder.tsx +++ b/src/view/com/util/LoadingPlaceholder.tsx @@ -233,8 +233,7 @@ export function FeedLoadingPlaceholder({ {showLowerPlaceholder && ( - - + )} @@ -352,7 +346,7 @@ const styles = StyleSheet.create({ }, avatar: { borderRadius: 999, - marginRight: 10, + marginRight: 12, }, notification: { flexDirection: 'row', diff --git a/src/view/screens/SavedFeeds.tsx b/src/view/screens/SavedFeeds.tsx index f978d4fcb7..d77d20b46f 100644 --- a/src/view/screens/SavedFeeds.tsx +++ b/src/view/screens/SavedFeeds.tsx @@ -296,7 +296,7 @@ function ListItem({ @@ -391,26 +391,17 @@ function ListItem({ function FollowingFeedCard() { const t = useTheme() return ( - + - + Following