diff --git a/web/src/lib/components/slideshow-settings.svelte b/web/src/lib/components/slideshow-settings.svelte index 4af6cdc5e7..c30d2cfb09 100644 --- a/web/src/lib/components/slideshow-settings.svelte +++ b/web/src/lib/components/slideshow-settings.svelte @@ -25,6 +25,13 @@ let { onClose = () => {} }: Props = $props(); + // Temporary variables to hold the settings - marked as reactive with $state() but initialized with store values + let tempSlideshowDelay = $state($slideshowDelay); + let tempShowProgressBar = $state($showProgressBar); + let tempSlideshowNavigation = $state($slideshowNavigation); + let tempSlideshowLook = $state($slideshowLook); + let tempSlideshowTransition = $state($slideshowTransition); + const navigationOptions: Record = { [SlideshowNavigation.Shuffle]: { icon: mdiShuffle, title: $t('shuffle') }, [SlideshowNavigation.AscendingOrder]: { icon: mdiArrowUpThin, title: $t('backward') }, @@ -47,6 +54,15 @@ } } }; + + const applyChanges = () => { + $slideshowDelay = tempSlideshowDelay; + $showProgressBar = tempShowProgressBar; + $slideshowNavigation = tempSlideshowNavigation; + $slideshowLook = tempSlideshowLook; + $slideshowTransition = tempSlideshowTransition; + onClose(); + }; onClose()}> @@ -54,31 +70,32 @@ { - $slideshowNavigation = handleToggle(option, navigationOptions) || $slideshowNavigation; + tempSlideshowNavigation = handleToggle(option, navigationOptions) || tempSlideshowNavigation; }} /> { - $slideshowLook = handleToggle(option, lookOptions) || $slideshowLook; + tempSlideshowLook = handleToggle(option, lookOptions) || tempSlideshowLook; }} /> - - + + {#snippet stickyBottom()} - + + {/snippet}