From 613ad1effc0763ef68c22d9070d29c08b2ba0575 Mon Sep 17 00:00:00 2001 From: Alex Kim Date: Fri, 5 Jun 2026 23:36:34 +1000 Subject: [PATCH] Final touches --- components/syncplay/GroupSelectionMenu.tsx | 24 +++++ providers/SyncPlay/SyncPlayProvider.tsx | 101 ++++++++++++++------- providers/SyncPlay/cores/PlaybackCore.ts | 37 ++++---- translations/en.json | 28 +++--- 4 files changed, 127 insertions(+), 63 deletions(-) diff --git a/components/syncplay/GroupSelectionMenu.tsx b/components/syncplay/GroupSelectionMenu.tsx index 8bab14cff..9d8bc7de8 100644 --- a/components/syncplay/GroupSelectionMenu.tsx +++ b/components/syncplay/GroupSelectionMenu.tsx @@ -32,6 +32,7 @@ export function GroupSelectionMenu({ onClose }: GroupSelectionMenuProps) { createGroup, leaveGroup, getGroups, + resumeGroupPlayback, } = useSyncPlay(); const [groups, setGroups] = useState([]); @@ -93,6 +94,18 @@ export function GroupSelectionMenu({ onClose }: GroupSelectionMenuProps) { } }, [leaveGroup, onClose]); + // Jump (back) into the group's current item. Mirrors jellyfin-web's + // "Resume playback" menu entry — close the sheet and navigate to + // the player; SyncPlayProvider handles the re-follow + URL build. + const handleResumePlayback = useCallback(async () => { + try { + await resumeGroupPlayback(); + onClose(); + } catch (error) { + console.error("Failed to resume group playback", error); + } + }, [resumeGroupPlayback, onClose]); + const containerStyle = { paddingLeft: Math.max(16, insets.left), paddingRight: Math.max(16, insets.right), @@ -135,6 +148,17 @@ export function GroupSelectionMenu({ onClose }: GroupSelectionMenuProps) { )} + + + +