From 3bb33819a744613444ed8af0949a2b7e4647c712 Mon Sep 17 00:00:00 2001 From: ektatas Date: Sat, 3 Jan 2026 15:28:04 +0100 Subject: [PATCH] fix first comma when select all episodes --- .../Listing/EpisodeListing.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gui/react/src/components/AddToQueue/DownloadSelector/Listing/EpisodeListing.tsx b/gui/react/src/components/AddToQueue/DownloadSelector/Listing/EpisodeListing.tsx index e3b60f1..9dbe04a 100644 --- a/gui/react/src/components/AddToQueue/DownloadSelector/Listing/EpisodeListing.tsx +++ b/gui/react/src/components/AddToQueue/DownloadSelector/Listing/EpisodeListing.tsx @@ -27,17 +27,15 @@ const EpisodeListing: React.FC = () => { }, [store.episodeListing]); const close = () => { - dispatch({ - type: 'episodeListing', - payload: [] - }); + const mergedEpisodes = [...parseEpisodes(store.downloadOptions.e), ...selected]; dispatch({ type: 'downloadOptions', payload: { ...store.downloadOptions, - e: `${[...new Set([...parseSelect(store.downloadOptions.e), ...selected])].join(',')}` + e: serializeEpisodes(mergedEpisodes) } }); + dispatch({ type: 'episodeListing', payload: [] }); }; const getEpisodesForSeason = (season: string | 'all') => { @@ -168,6 +166,16 @@ const EpisodeListing: React.FC = () => { ); }; +const parseEpisodes = (e: string): string[] => { + if (!e) return []; + return e + .split(',') + .map((s) => s.trim()) + .filter((s) => s.length > 0); +}; +const serializeEpisodes = (episodes: string[]): string => { + return [...new Set(episodes)].join(','); +}; const parseSelect = (s: string): string[] => { const ret: string[] = [];