diff options
Diffstat (limited to 'src/services/queue.ts')
| -rw-r--r-- | src/services/queue.ts | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/services/queue.ts b/src/services/queue.ts index c929eea..1c766f1 100644 --- a/src/services/queue.ts +++ b/src/services/queue.ts @@ -34,8 +34,16 @@ export default class { } } + getCurrent(): QueuedSong | null { + if (this.queue[this.position]) { + return this.queue[this.position]; + } + + return null; + } + get(): QueuedSong[] { - return this.queue.slice(this.position); + return this.queue.slice(this.position + 1); } add(song: QueuedSong): void { @@ -61,7 +69,7 @@ export default class { } shuffle(): void { - this.queue = [this.queue[0], ...shuffle(this.queue.slice(1))]; + this.queue = [...this.queue.slice(0, this.position), this.queue[this.position], this.queue[0], ...shuffle(this.queue.slice(this.position + 1))]; } clear(): void { @@ -76,7 +84,7 @@ export default class { } size(): number { - return this.queue.length; + return this.get().length; } isEmpty(): boolean { |
