Change many border widths from 1 to hairlineWidth (#4294)

* feed items

* update some more

* moar

* profile card

* composer and notifications

* settings screen

* remove border from first item in feeds

* remove border from first item in feeds

* more removal of top border

* fix flatlist rendering

* oops

* scroll to top fab

* a.border

* centeredview/list

* placeholder

* web sidebar

* search posts

* feeds list

* user lists

* list header

* account list width 1

* hide top border feedgens

* same for lists

* fix tab bar web desktop

* wait...

* show the border on desktop web

* fix lists

* fix lists

* round
This commit is contained in:
Hailey 2024-05-30 21:32:54 -07:00 committed by GitHub
parent 8569e2e389
commit 89c9fd3be1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 227 additions and 144 deletions

View file

@ -3,6 +3,7 @@ import {
ActivityIndicator,
AppState,
Dimensions,
ListRenderItemInfo,
StyleProp,
StyleSheet,
View,
@ -31,6 +32,7 @@ import {
import {useSession} from '#/state/session'
import {useAnalytics} from 'lib/analytics/analytics'
import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
import {useTheme} from 'lib/ThemeContext'
import {List, ListRef} from '../util/List'
import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder'
@ -100,6 +102,7 @@ let Feed = ({
const checkForNewRef = React.useRef<(() => void) | null>(null)
const lastFetchRef = React.useRef<number>(Date.now())
const [feedType, feedUri] = feed.split('|')
const {isTabletOrMobile} = useWebMediaQueries()
const opts = React.useMemo(
() => ({enabled, ignoreFilterFor}),
@ -279,7 +282,7 @@ let Feed = ({
// =
const renderItem = React.useCallback(
({item}: {item: any}) => {
({item, index}: ListRenderItemInfo<any>) => {
if (item === EMPTY_FEED_ITEM) {
return renderEmptyState()
} else if (item === ERROR_ITEM) {
@ -311,17 +314,23 @@ let Feed = ({
// -prf
return <DiscoverFallbackHeader />
}
return <FeedSlice slice={item} />
return (
<FeedSlice
slice={item}
hideTopBorder={index === 0 && isTabletOrMobile}
/>
)
},
[
isTabletOrMobile,
renderEmptyState,
feed,
feedUri,
error,
onPressTryAgain,
onPressRetryLoadMore,
renderEmptyState,
_,
savedFeedConfig,
_,
onPressRetryLoadMore,
feedUri,
],
)

View file

@ -42,6 +42,7 @@ import {PostMeta} from '../util/PostMeta'
import {Text} from '../util/text/Text'
import {PreviewableUserAvatar} from '../util/UserAvatar'
import {AviFollowButton} from './AviFollowButton'
import hairlineWidth = StyleSheet.hairlineWidth
interface FeedItemProps {
record: AppBskyFeedPost.Record
@ -53,6 +54,7 @@ interface FeedItemProps {
isThreadLastChild?: boolean
isThreadParent?: boolean
feedContext: string | undefined
hideTopBorder?: boolean
}
export function FeedItem({
@ -66,6 +68,7 @@ export function FeedItem({
isThreadChild,
isThreadLastChild,
isThreadParent,
hideTopBorder,
}: FeedItemProps & {post: AppBskyFeedDefs.PostView}): React.ReactNode {
const postShadowed = usePostShadow(post)
const richText = useMemo(
@ -95,6 +98,7 @@ export function FeedItem({
isThreadChild={isThreadChild}
isThreadLastChild={isThreadLastChild}
isThreadParent={isThreadParent}
hideTopBorder={hideTopBorder}
/>
)
}
@ -113,6 +117,7 @@ let FeedItemInner = ({
isThreadChild,
isThreadLastChild,
isThreadParent,
hideTopBorder,
}: FeedItemProps & {
richText: RichTextAPI
post: Shadow<AppBskyFeedDefs.PostView>
@ -186,8 +191,8 @@ let FeedItemInner = ({
isThreadLastChild || (!isThreadChild && !isThreadParent)
? 8
: undefined,
borderTopWidth: hideTopBorder || isThreadChild ? 0 : hairlineWidth,
},
isThreadChild ? styles.outerSmallTop : undefined,
]
return (
@ -445,16 +450,12 @@ function ReplyToLabel({profile}: {profile: AppBskyActorDefs.ProfileViewBasic}) {
const styles = StyleSheet.create({
outer: {
borderTopWidth: 1,
paddingLeft: 10,
paddingRight: 15,
// @ts-ignore web only -prf
cursor: 'pointer',
overflow: 'hidden',
},
outerSmallTop: {
borderTopWidth: 0,
},
replyLine: {
width: 2,
marginLeft: 'auto',

View file

@ -11,7 +11,13 @@ import {Link} from '../util/Link'
import {Text} from '../util/text/Text'
import {FeedItem} from './FeedItem'
let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => {
let FeedSlice = ({
slice,
hideTopBorder,
}: {
slice: FeedPostSlice
hideTopBorder?: boolean
}): React.ReactNode => {
if (slice.isThread && slice.items.length > 3) {
const last = slice.items.length - 1
return (
@ -27,6 +33,7 @@ let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => {
moderation={slice.items[0].moderation}
isThreadParent={isThreadParentAt(slice.items, 0)}
isThreadChild={isThreadChildAt(slice.items, 0)}
hideTopBorder={hideTopBorder}
/>
<FeedItem
key={slice.items[1]._reactKey}
@ -75,6 +82,7 @@ let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => {
isThreadLastChild={
isThreadChildAt(slice.items, i) && slice.items.length === i + 1
}
hideTopBorder={hideTopBorder && i === 0}
/>
))}
</>