Skip to content
This repository has been archived by the owner on Sep 26, 2022. It is now read-only.

Commit

Permalink
fix(Slider): reactivity
Browse files Browse the repository at this point in the history
Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
  • Loading branch information
Florian-Schoenherr committed Apr 19, 2021
1 parent f6f5325 commit 0862cb3
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 22 deletions.
10 changes: 5 additions & 5 deletions packages/docs/src/examples/Slider/minMax.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@
</script>

<Subheader>Default Slider</Subheader>
<Slider {min} {max} bind:value={slider} hint="Hint Text">
<span slot="append">
<Slider {min} {max} bind:value={slider}>
<span slot="append-outer">
<TextField bind:value={slider} />
</span>
</Slider>

<Subheader>Range</Subheader>
<Slider {min} {max} bind:value={range}>
<span slot="prepend">
<span slot="prepend-outer">
<TextField bind:value={range[0]} />
</span>
<span slot="append">
<TextField bind:value={range[1]} />
<span slot="append-outer">
<TextField class="ml-3" bind:value={range[1]} />
</span>
</Slider>
32 changes: 15 additions & 17 deletions packages/svelte-materialify/src/components/Slider/Slider.svelte
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<script>
import Input from '../Input';
import { onMount, afterUpdate, createEventDispatcher } from 'svelte';
import { onMount, createEventDispatcher } from 'svelte';
let sliderElement;
let slider;
let localValue;
let internalValue;
const dispatch = createEventDispatcher();
export let min = 0;
Expand Down Expand Up @@ -70,7 +70,7 @@
slider = sliderElement.noUiSlider;
slider.on('update', (val, handle) => {
value = format(val);
localValue = value;
internalValue = value;
dispatch('update', { value: val, handle });
});
slider.on('change', (val, handle) => {
Expand All @@ -82,22 +82,20 @@
};
});
$: {
if (slider != null) {
slider.updateOptions({
range: { min, max },
orientation: vertical ? 'vertical' : 'horizontal',
connect,
margin,
limit,
padding,
});
}
$: if (slider) {
if(value !== internalValue) slider.set(value, false);
slider.updateOptions({
start: value,
range: { min, max },
orientation: vertical ? 'vertical' : 'horizontal',
connect,
margin,
limit,
padding,
step
}, false);
}
afterUpdate(() => {
if (slider && value !== localValue) slider.set(value, false);
});
</script>

<style lang="scss" src="./Slider.scss" global>
Expand Down

0 comments on commit 0862cb3

Please sign in to comment.