pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix the source getting reset when we change sources

Changing sources causes a non fatal error, but we were clearing the last successful source when any error happened. Instead we can clear if it's fatal.

Pas 65246b8b 0c192d25

+7 -4
+7 -1
src/pages/parts/player/PlaybackErrorPart.tsx
··· 10 10 import { useOverlayRouter } from "@/hooks/useOverlayRouter"; 11 11 import { ErrorContainer, ErrorLayout } from "@/pages/layouts/ErrorLayout"; 12 12 import { usePlayerStore } from "@/stores/player/store"; 13 + import { usePreferencesStore } from "@/stores/preferences"; 13 14 14 15 import { ErrorCardInModal } from "../errors/ErrorCard"; 15 16 ··· 19 20 const modal = useModal("error"); 20 21 const settingsRouter = useOverlayRouter("settings"); 21 22 const hasOpenedSettings = useRef(false); 23 + const setLastSuccessfulSource = usePreferencesStore( 24 + (s) => s.setLastSuccessfulSource, 25 + ); 22 26 23 27 // Automatically open the settings overlay when a playback error occurs 24 28 useEffect(() => { 25 29 if (playbackError && !hasOpenedSettings.current) { 26 30 hasOpenedSettings.current = true; 31 + // Reset the last successful source when a playback error occurs 32 + setLastSuccessfulSource(null); 27 33 settingsRouter.open(); 28 34 settingsRouter.navigate("/source"); 29 35 } 30 - }, [playbackError, settingsRouter]); 36 + }, [playbackError, settingsRouter, setLastSuccessfulSource]); 31 37 32 38 const handleOpenSourcePicker = () => { 33 39 settingsRouter.open();
-3
src/stores/player/slices/display.ts
··· 1 1 import { DisplayInterface } from "@/components/player/display/displayInterface"; 2 2 import { playerStatus } from "@/stores/player/slices/source"; 3 3 import { MakeSlice } from "@/stores/player/slices/types"; 4 - import { usePreferencesStore } from "@/stores/preferences"; 5 4 6 5 export interface DisplaySlice { 7 6 display: DisplayInterface | null; ··· 106 105 s.status = playerStatus.PLAYBACK_ERROR; 107 106 s.interface.error = err; 108 107 }); 109 - // Reset last successful source on playback error 110 - usePreferencesStore.getState().setLastSuccessfulSource(null); 111 108 }); 112 109 113 110 set((s) => {