fix content sheet for android

This commit is contained in:
Violet Caulfield
2025-08-19 22:06:06 -05:00
parent 3af90aa17b
commit d456aa1cd2
2 changed files with 61 additions and 27 deletions
+31 -20
View File
@@ -1,5 +1,5 @@
import { BaseItemDto, BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models'
import { getToken, ListItem, View, YGroup, ZStack } from 'tamagui'
import { getToken, getTokenValue, ListItem, View, YGroup, ZStack } from 'tamagui'
import { BaseStackParamList, RootStackParamList } from '../../screens/types'
import { Text } from '../Global/helpers/text'
import FavoriteContextMenuRow from '../Global/components/favorite-context-menu-row'
@@ -26,6 +26,7 @@ import ItemImage from '../Global/components/image'
import { StackActions } from '@react-navigation/native'
import TextTicker from 'react-native-text-ticker'
import { TextTickerConfig } from '../Player/component.config'
import { useSafeAreaInsets } from 'react-native-safe-area-context'
type StackNavigation = Pick<NativeStackNavigationProp<BaseStackParamList>, 'navigate' | 'dispatch'>
@@ -39,6 +40,18 @@ interface ContextProps {
export default function ItemContext({ item, stackNavigation }: ContextProps): React.JSX.Element {
const { api, user, library } = useJellifyContext()
const { bottom } = useSafeAreaInsets()
const bottomMargin = useMemo(() => {
const isAndroid = Platform.OS === 'android'
let finalMargin = bottom
if (isAndroid) finalMargin += getTokenValue('$12')
return finalMargin
}, [bottom])
const isArtist = item.Type === BaseItemKind.MusicArtist
const isAlbum = item.Type === BaseItemKind.MusicAlbum
const isTrack = item.Type === BaseItemKind.Audio
@@ -92,29 +105,27 @@ export default function ItemContext({ item, stackNavigation }: ContextProps): Re
const renderViewAlbumRow = useMemo(() => isAlbum || (isTrack && album), [album, item])
return (
<View flex={Platform.OS === 'android' ? 1 : undefined} animation={'quick'}>
<YGroup unstyled flex={1} marginTop={'$8'}>
<FavoriteContextMenuRow item={item} />
<YGroup unstyled marginBottom={bottomMargin}>
<FavoriteContextMenuRow item={item} />
{renderAddToQueueRow && <AddToQueueMenuRow tracks={isTrack ? [item] : tracks!} />}
{renderAddToQueueRow && <AddToQueueMenuRow tracks={isTrack ? [item] : tracks!} />}
{renderAddToPlaylistRow && <AddToPlaylistRow track={item} />}
{renderAddToPlaylistRow && <AddToPlaylistRow track={item} />}
{renderViewAlbumRow && (
<ViewAlbumMenuRow
album={isAlbum ? item : album!}
stackNavigation={stackNavigation}
/>
)}
{renderViewAlbumRow && (
<ViewAlbumMenuRow
album={isAlbum ? item : album!}
stackNavigation={stackNavigation}
/>
)}
{!isPlaylist && (
<ViewArtistMenuRow
artists={isArtist ? [item] : artists ? artists : []}
stackNavigation={stackNavigation}
/>
)}
</YGroup>
</View>
{!isPlaylist && (
<ViewArtistMenuRow
artists={isArtist ? [item] : artists ? artists : []}
stackNavigation={stackNavigation}
/>
)}
</YGroup>
)
}