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:
parent
8569e2e389
commit
89c9fd3be1
33 changed files with 227 additions and 144 deletions
|
@ -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,
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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}
|
||||
/>
|
||||
))}
|
||||
</>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue