getting ready to add that same reordering to playlists

This commit is contained in:
Violet Caulfield
2025-01-27 19:34:30 -06:00
parent ddf23fd22f
commit dfe5c96faa
4 changed files with 64 additions and 61 deletions

View File

@@ -0,0 +1,13 @@
import Client from "@/api/client";
import { getPlaylistsApi } from "@jellyfin/sdk/lib/utils/api";
export async function reorderPlaylist(playlistId: string, itemId: string, to: number) {
return getPlaylistsApi(Client.api!)
.moveItem({
playlistId,
itemId,
newIndex: to
});
}

View File

@@ -1,5 +1,4 @@
import Client from "../../client";
import { Api } from "@jellyfin/sdk";
import { BaseItemDto, ItemSortBy, SortOrder } from "@jellyfin/sdk/lib/generated-client/models";
import { getItemsApi } from "@jellyfin/sdk/lib/utils/api";

View File

@@ -45,29 +45,18 @@ export default function Queue({ navigation }: { navigation: NativeStackNavigatio
const index = getIndex();
return (
<SwipeableItem
key={index}
item={queueItem}
renderUnderlayLeft={() => (
<Icon name="close" onPress={() => {
}} />
)}
>
<Track
navigation={navigation}
track={queueItem.item}
tracklist={queue.map((track) => track.item)}
index={getIndex()}
showArtwork
onPress={() => {
useSkip.mutate(index);
}}
onLongPress={drag}
isNested
/>
</SwipeableItem>
<Track
navigation={navigation}
track={queueItem.item}
tracklist={queue.map((track) => track.item)}
index={getIndex()}
showArtwork
onPress={() => {
useSkip.mutate(index);
}}
onLongPress={drag}
isNested
/>
)
}}
/>

View File

@@ -33,44 +33,46 @@ export default function Playlist({
]);
return (
<ScrollView contentInsetAdjustmentBehavior="automatic">
<YStack alignItems="center">
<BlurhashedImage
item={playlist}
width={300}
/>
<FlatList
contentInsetAdjustmentBehavior="automatic"
data={tracks}
extraData={nowPlaying}
ListHeaderComponent={() => (
<YStack alignItems="center">
<BlurhashedImage
item={playlist}
width={300}
/>
<H4>{ playlist.Name ?? "Untitled Playlist" }</H4>
<H5>{ playlist.ProductionYear?.toString() ?? "" }</H5>
</YStack>
<FlatList
data={tracks}
extraData={nowPlaying}
numColumns={1}
renderItem={({ item: track, index }) => {
<H4>{ playlist.Name ?? "Untitled Playlist" }</H4>
<H5>{ playlist.ProductionYear?.toString() ?? "" }</H5>
</YStack>
)}
numColumns={1}
renderItem={({ item: track, index }) => {
return (
<Track
navigation={navigation}
track={track}
tracklist={tracks!}
index={index}
queueName={playlist.Name ?? "Untitled Playlist"}
showArtwork
/>
)
}}/>
<XStack justifyContent="flex-end">
<Text
color={"$borderColor"}
style={{ display: "block"}}
>
Total Runtime:
</Text>
<RunTimeTicks>{ playlist.RunTimeTicks }</RunTimeTicks>
</XStack>
</ScrollView>
return (
<Track
navigation={navigation}
track={track}
tracklist={tracks!}
index={index}
queueName={playlist.Name ?? "Untitled Playlist"}
showArtwork
/>
)
}}
ListFooterComponent={() => (
<XStack justifyContent="flex-end">
<Text
color={"$borderColor"}
style={{ display: "block"}}
>
Total Runtime:
</Text>
<RunTimeTicks>{ playlist.RunTimeTicks }</RunTimeTicks>
</XStack>
)}
/>
)
}