queuing helper work

This commit is contained in:
Violet Caulfield
2024-12-28 09:53:18 -06:00
parent c101e6dfc1
commit f2bf1d8df7
3 changed files with 23 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
import { isEmpty } from "lodash";
import { QueuingType } from "../../../enums/queuing-type";
import { JellifyTrack } from "../../../types/JellifyTrack";
import { QueuingType } from "../../enums/queuing-type";
import { JellifyTrack } from "../../types/JellifyTrack";
/**
* Finds and returns the index of the player queue to insert additional tracks into

18
player/helpers/queue.ts Normal file
View File

@@ -0,0 +1,18 @@
import _ from "lodash";
import { JellifyTrack } from "../../types/JellifyTrack";
export function buildNewQueue(existingQueue: JellifyTrack[], tracksToInsert: JellifyTrack[], insertIndex: number) {
let newQueue : JellifyTrack[] = [];
if (_.isEmpty(existingQueue))
newQueue = tracksToInsert;
else {
newQueue = _.cloneDeep(existingQueue).splice(insertIndex, 0, ...tracksToInsert);
}
console.debug(`Setting queue: ${newQueue}`)
return newQueue;
}

View File

@@ -2,9 +2,10 @@ import { createContext, ReactNode, SetStateAction, useContext, useEffect, useSta
import { JellifyTrack } from "../types/JellifyTrack";
import { storage } from "../constants/storage";
import { MMKVStorageKeys } from "../enums/mmkv-storage-keys";
import { findPlayQueueIndexStart } from "./mutators/helpers";
import { findPlayQueueIndexStart } from "./helpers";
import { add, reset, setupPlayer } from "react-native-track-player/lib/src/trackPlayer";
import _ from "lodash";
import { buildNewQueue } from "./helpers/queue";
interface PlayerContext {
showPlayer: boolean;
@@ -43,12 +44,7 @@ const PlayerContextInitializer = () => {
await add(tracks, insertIndex);
let newQueue : JellifyTrack[] =
_.cloneDeep(queue).splice(insertIndex, 0, ...tracks);
console.debug(`Setting queue: ${newQueue}`)
setQueue(newQueue)
setQueue(buildNewQueue(queue, tracks, insertIndex))
}
// Hide miniplayer if the queue is empty