mirror of
https://github.com/Jellify-Music/App.git
synced 2026-02-23 04:08:48 -06:00
queuing helper work
This commit is contained in:
@@ -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
18
player/helpers/queue.ts
Normal 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;
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user