Desktop styling fixes

This commit is contained in:
Paul Frazee 2023-05-17 22:58:53 -05:00
parent ed7293ea66
commit bec94ed82c
6 changed files with 84 additions and 42 deletions

View file

@ -1,10 +1,10 @@
import React, {useEffect, useCallback} from 'react'
import {FlatList, RefreshControl, StyleSheet, View} from 'react-native'
import {RefreshControl, StyleSheet, View} from 'react-native'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {usePalette} from 'lib/hooks/usePalette'
import {observer} from 'mobx-react-lite'
import {useStores} from 'state/index'
import {CenteredView} from 'view/com/util/Views'
import {FlatList} from 'view/com/util/Views'
import {Text} from 'view/com/util/text/Text'
import {isDesktopWeb} from 'platform/detection'
import {s} from 'lib/styles'
@ -65,31 +65,29 @@ export const SavedFeeds = observer(
)
return (
<CenteredView style={[s.flex1]}>
<FlatList
style={[!isDesktopWeb && s.flex1, {paddingTop: headerOffset}]}
data={store.me.savedFeeds.feeds}
keyExtractor={item => item.data.uri}
refreshing={store.me.savedFeeds.isRefreshing}
refreshControl={
<RefreshControl
refreshing={store.me.savedFeeds.isRefreshing}
onRefresh={() => store.me.savedFeeds.refresh()}
tintColor={pal.colors.text}
titleColor={pal.colors.text}
progressViewOffset={headerOffset}
/>
}
renderItem={renderItem}
initialNumToRender={10}
ListFooterComponent={renderListFooterComponent}
ListEmptyComponent={renderListEmptyComponent}
extraData={store.me.savedFeeds.isLoading}
contentOffset={{x: 0, y: headerOffset * -1}}
// @ts-ignore our .web version only -prf
desktopFixedHeight
/>
</CenteredView>
<FlatList
style={[!isDesktopWeb && s.flex1, {paddingTop: headerOffset}]}
data={store.me.savedFeeds.feeds}
keyExtractor={item => item.data.uri}
refreshing={store.me.savedFeeds.isRefreshing}
refreshControl={
<RefreshControl
refreshing={store.me.savedFeeds.isRefreshing}
onRefresh={() => store.me.savedFeeds.refresh()}
tintColor={pal.colors.text}
titleColor={pal.colors.text}
progressViewOffset={headerOffset}
/>
}
renderItem={renderItem}
initialNumToRender={10}
ListFooterComponent={renderListFooterComponent}
ListEmptyComponent={renderListEmptyComponent}
extraData={store.me.savedFeeds.isLoading}
contentOffset={{x: 0, y: headerOffset * -1}}
// @ts-ignore our .web version only -prf
desktopFixedHeight
/>
)
},
)

View file

@ -28,7 +28,12 @@ const FeedsTabBarDesktop = observer(
) => {
const store = useStores()
const items = useMemo(
() => ['Following', "What's hot", ...store.me.savedFeeds.pinnedFeedNames],
() => [
'Following',
"What's hot",
...store.me.savedFeeds.pinnedFeedNames,
'My feeds',
],
[store.me.savedFeeds.pinnedFeedNames],
)
const pal = usePalette('default')

View file

@ -107,11 +107,12 @@ const styles = isDesktopWeb
? StyleSheet.create({
outer: {
flexDirection: 'row',
paddingHorizontal: 18,
width: 598,
paddingHorizontal: 14,
},
item: {
paddingTop: 14,
paddingBottom: 16,
paddingBottom: 12,
paddingHorizontal: 12,
borderBottomWidth: 3,
borderBottomColor: 'transparent',

View file

@ -20,12 +20,14 @@ export const ViewHeader = observer(function ({
canGoBack,
hideOnScroll,
showOnDesktop,
showBorder,
renderButton,
}: {
title: string
canGoBack?: boolean
hideOnScroll?: boolean
showOnDesktop?: boolean
showBorder?: boolean
renderButton?: () => JSX.Element
}) {
const pal = usePalette('default')
@ -57,7 +59,7 @@ export const ViewHeader = observer(function ({
}
return (
<Container hideOnScroll={hideOnScroll || false}>
<Container hideOnScroll={hideOnScroll || false} showBorder={showBorder}>
<TouchableOpacity
testID="viewHeaderDrawerBtn"
onPress={canGoBack ? onPressBack : onPressMenu}
@ -115,9 +117,11 @@ const Container = observer(
({
children,
hideOnScroll,
showBorder,
}: {
children: React.ReactNode
hideOnScroll: boolean
showBorder: boolean
}) => {
const store = useStores()
const pal = usePalette('default')
@ -145,11 +149,28 @@ const Container = observer(
}
if (!hideOnScroll) {
return <View style={[styles.header, pal.view]}>{children}</View>
return (
<View
style={[
styles.header,
pal.view,
pal.border,
showBorder && styles.border,
]}>
{children}
</View>
)
}
return (
<Animated.View
style={[styles.header, pal.view, styles.headerFloating, transform]}>
style={[
styles.header,
pal.view,
pal.border,
styles.headerFloating,
transform,
showBorder && styles.border,
]}>
{children}
</Animated.View>
)
@ -172,6 +193,9 @@ const styles = StyleSheet.create({
borderBottomWidth: 1,
paddingVertical: 12,
},
border: {
borderBottomWidth: 1,
},
titleContainer: {
marginLeft: 'auto',

View file

@ -126,5 +126,6 @@ const styles = StyleSheet.create({
},
fixedHeight: {
height: '100vh',
scrollbarGutter: 'stable both-edges',
},
})