Commit Graph

10 Commits

Author SHA1 Message Date
wvffle 1d4a3468ee Revert "Rewrite player logic"
This reverts commit ec630a234ab5ea0dccddaf06c462536bbf1ed329.
2022-09-06 09:26:36 +00:00
wvffle 97e7049333 Rewrite player logic
This commit will bring:
- Gapless play! (Fix #739)
- Chunked queue shuffling - we play first track after first 50 queue items are shuffled, then we shuffle chunks of 50 queue items with each new animation frame.
- We can now restore original queue order after shuffling! (Part of #1506)
- Preloading whole tracks into LRU cache (Should fix #1812)
- Preloading multiple tracks at once
2022-09-06 09:26:36 +00:00
wvffle c87bf7e6b8 Queue component enhancements
This commit provides following queue component enhancements:
- Use a virtual list to render queue items. We now render ~25-30 items at once compared to `queue.length` items. (Fix #1471)
- Faster queue opening and a smoother open animation. (Fix #1471)
- Faster song enqueueing: When enqueueing a playlist or an album, we modify the state only once compared to `tracks.length` modifications before.
- When opening the queue, current track is now already pre-scrolled and centered. This resolves an issue with big queues, where the track list was slowly scrolling to a random position.
- Dragging a track onto the edge of the track list will now scroll the container. You reorder a track from the very top to the very bottom even when you have 3000 tracks in the queue!
- Ability to use scroll wheel while reordering track items
- Track reordering on mobile devices! Currently dragging to edge is disabled
- Responsivity fixes
- Allow click outside modal (Fix #1581)
2022-09-06 09:26:36 +00:00
wvffle bd1a92c5f1 Set `operator-linebreak` to `before` 2022-09-06 09:26:36 +00:00
wvffle 951d339904 Fix audio playback 2022-09-06 09:26:36 +00:00
wvffle bbdb3dcb9d Fix auto-fixable linter issues 2022-09-06 09:26:36 +00:00
wvffle 405eed0c0f Add semantic ui types 2022-09-06 09:26:36 +00:00
wvffle a37835a9c2 Allow displaying multiple same tracks in track list
Well, there was some error with `@mouseleave` not firing in some cases for some weird reason, so I decided to handle the `hover` prop in the container
2022-09-06 09:26:36 +00:00
wvffle 0251789f82 Fix a bunch of typescript errors 2022-09-06 09:26:36 +00:00
wvffle 77594351ae Remove PlayOptions and Report mixins 2022-09-06 09:26:36 +00:00