mirror of
https://github.com/Jellify-Music/App.git
synced 2026-03-14 07:59:51 -05:00
getting ready to add that same reordering to playlists
This commit is contained in:
13
api/mutations/functions/playlists.ts
Normal file
13
api/mutations/functions/playlists.ts
Normal 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
|
||||
});
|
||||
}
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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
|
||||
/>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -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>
|
||||
)}
|
||||
/>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user