From 757069d657498c3f75f990df726121e51aa11b44 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Fri, 20 Sep 2024 10:48:49 +0200 Subject: [PATCH 1/2] [bugfix] Downloading a playlist from its details modal was not updating the playlist's download status in the playlists list --- .../local-playlist-details-modal.component.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/renderer/components/modal/modal-types/playlist/playlist-details-modal/local-playlist-details-modal.component.tsx b/src/renderer/components/modal/modal-types/playlist/playlist-details-modal/local-playlist-details-modal.component.tsx index 7638d04b..6019b25b 100644 --- a/src/renderer/components/modal/modal-types/playlist/playlist-details-modal/local-playlist-details-modal.component.tsx +++ b/src/renderer/components/modal/modal-types/playlist/playlist-details-modal/local-playlist-details-modal.component.tsx @@ -34,8 +34,12 @@ export const LocalPlaylistDetailsModal: ModalComponent = ({resolver const installedMaps = useObservable(() => options.data.installedMaps$, null); const isMissingMaps$ = useConstant(() => combineLatest([options.data.installedMaps$, options.data.localPlaylist$]).pipe(map(([maps, playlist]) => maps.length !== playlist.songs.length))); - const isPlaylistDownloading$ = useConstant(() => options.data.localPlaylist$.pipe(switchMap(playlist => playlistDownloader.$isPlaylistDownloading(playlist.path, options.data.version)))); - const isPlaylistInQueue$ = useConstant(() => options.data.localPlaylist$.pipe(switchMap(playlist => playlistDownloader.$isPlaylistInQueue(playlist.path, options.data.version)))); + const isPlaylistDownloading$ = useConstant(() => options.data.localPlaylist$.pipe(switchMap( + playlist => playlistDownloader.$isPlaylistDownloading(playlist?.customData?.syncURL ?? playlist.path, options.data.version) + ))); + const isPlaylistInQueue$ = useConstant(() => options.data.localPlaylist$.pipe(switchMap( + playlist => playlistDownloader.$isPlaylistInQueue(playlist?.customData?.syncURL ?? playlist.path, options.data.version) + ))); const isInQueue = useObservable(() => isPlaylistInQueue$, false); @@ -44,7 +48,7 @@ export const LocalPlaylistDetailsModal: ModalComponent = ({resolver const ignoreSongsHashs = installedMaps?.map(map => map.hash); const obs$ = playlistDownloader.downloadPlaylist({ - downloadSource: localPlaylist.path, + downloadSource: localPlaylist?.customData?.syncURL ?? localPlaylist.path, dest: localPlaylist.path, version: options.data.version, ignoreSongsHashs, From aae23c18d66e47ef22bcfde7304e1c2dd23403ee Mon Sep 17 00:00:00 2001 From: silentrald Date: Sat, 21 Sep 2024 22:31:33 +0800 Subject: [PATCH 2/2] [bugfix] handle undefined modal options properly --- src/renderer/components/modal/modal.component.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/modal/modal.component.tsx b/src/renderer/components/modal/modal.component.tsx index 2d06fbe3..76555fcb 100644 --- a/src/renderer/components/modal/modal.component.tsx +++ b/src/renderer/components/modal/modal.component.tsx @@ -17,7 +17,7 @@ export function Modal() { useEffect(() => { const onEscape = (e: KeyboardEvent) => { - if (currentModal.options.closable === false || e.key !== "Escape") { + if (currentModal.options?.closable === false || e.key !== "Escape") { return; } currentModal.resolver({ exitCode: ModalExitCode.CLOSED }); @@ -65,7 +65,7 @@ export function Modal() { } const onOverlayClicked = () => { - if (currentModal.options.closable === false) { + if (currentModal.options?.closable === false) { return; }