theming stuff, item details screen

This commit is contained in:
Violet Caulfield
2025-01-18 06:36:39 -06:00
parent 2471474547
commit ae73127720
9 changed files with 119 additions and 8 deletions
+2 -2
View File
@@ -11,11 +11,11 @@ interface SliderProps {
const JellifySliderThumb = styled(Slider.Thumb, {
backgroundColor: Colors.Primary,
borderColor: Colors.Background
borderColor: Colors.Background,
})
const JellifySliderTrack = styled(Slider.Track, {
backgroundColor: Colors.Secondary
backgroundColor: Colors.Borders
});
const JellifyActiveSliderTrack = styled(Slider.TrackActive, {
View File
+50
View File
@@ -0,0 +1,50 @@
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { SafeAreaView } from "react-native-safe-area-context";
import { StackParamList } from "../types";
import TrackOptions from "./helpers/TrackOptions";
import { View } from "tamagui";
export default function ItemDetail({
item,
navigation
} : {
item: BaseItemDto,
navigation: NativeStackNavigationProp<StackParamList>
}) : React.JSX.Element {
let options: React.JSX.Element | undefined = undefined;
switch (item.Type) {
case "Audio": {
options = TrackOptions({ item, navigation });
break;
}
case "MusicAlbum" : {
break;
}
case "MusicArtist" : {
break;
}
case "Playlist" : {
break;
}
default : {
break;
}
}
return (
<SafeAreaView edges={["right", "left"]}>
{ options ?? <View /> }
</SafeAreaView>
)
}
@@ -0,0 +1,19 @@
import { StackParamList } from "@/components/types";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { View } from "tamagui";
export default function TrackOptions({
item,
navigation
} : {
item: BaseItemDto,
navigation: NativeStackNavigationProp<StackParamList>
}) : React.JSX.Element {
return (
<View>
</View>
)
}
+9
View File
@@ -3,6 +3,7 @@ import { createNativeStackNavigator, NativeStackNavigationProp } from "@react-na
import { StackParamList } from "../types";
import PlayerScreen from "./screens";
import Queue from "./screens/queue";
import DetailsScreen from "./screens/details";
export const PlayerStack = createNativeStackNavigator<StackParamList>();
@@ -30,6 +31,14 @@ export default function Player({ navigation }: { navigation: NativeStackNavigati
}}
/>
<PlayerStack.Screen
name="Details"
component={DetailsScreen}
options={{
headerTitle: ""
}}
/>
</PlayerStack.Navigator>
);
}
+20
View File
@@ -0,0 +1,20 @@
import ItemDetail from "@/components/ItemDetail/component";
import { StackParamList } from "@/components/types";
import { RouteProp } from "@react-navigation/native";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import React from "react";
export default function DetailsScreen({
route,
navigation
} : {
route: RouteProp<StackParamList, "Details">,
navigation: NativeStackNavigationProp<StackParamList>
}) : React.JSX.Element {
return (
<ItemDetail
item={route.params.item}
navigation={navigation}
/>
)
}
+11
View File
@@ -132,6 +132,17 @@ export default function PlayerScreen({ navigation }: { navigation: NativeStackNa
flex={1}
>
{/* Buttons for favorites, song menu go here */}
<Icon
name="menu-open"
color={Colors.Primary}
onPress={() => {
navigation.navigate("Details", {
item: nowPlaying!.item
});
}}
/>
<FavoriteHeaderButton
item={nowPlaying!.item}
onToggle={() => setNowPlayingIsFavorite(!nowPlayingIsFavorite)}
+1 -1
View File
@@ -5,7 +5,7 @@ export const JellifyDarkTheme = {
colors: {
...DarkTheme.colors,
card: Colors.Background,
border: Colors.Secondary,
border: Colors.Borders,
background: Colors.Background,
primary: Colors.Primary,
},