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

Commit 0862cb3

Browse files
fix(Slider): reactivity
Signed-off-by: Florian-Schoenherr <[email protected]>
1 parent f6f5325 commit 0862cb3

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

packages/docs/src/examples/Slider/minMax.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@
88
</script>
99

1010
<Subheader>Default Slider</Subheader>
11-
<Slider {min} {max} bind:value={slider} hint="Hint Text">
12-
<span slot="append">
11+
<Slider {min} {max} bind:value={slider}>
12+
<span slot="append-outer">
1313
<TextField bind:value={slider} />
1414
</span>
1515
</Slider>
1616

1717
<Subheader>Range</Subheader>
1818
<Slider {min} {max} bind:value={range}>
19-
<span slot="prepend">
19+
<span slot="prepend-outer">
2020
<TextField bind:value={range[0]} />
2121
</span>
22-
<span slot="append">
23-
<TextField bind:value={range[1]} />
22+
<span slot="append-outer">
23+
<TextField class="ml-3" bind:value={range[1]} />
2424
</span>
2525
</Slider>

packages/svelte-materialify/src/components/Slider/Slider.svelte

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<script>
22
import Input from '../Input';
3-
import { onMount, afterUpdate, createEventDispatcher } from 'svelte';
3+
import { onMount, createEventDispatcher } from 'svelte';
44
55
let sliderElement;
66
let slider;
7-
let localValue;
7+
let internalValue;
88
const dispatch = createEventDispatcher();
99
1010
export let min = 0;
@@ -70,7 +70,7 @@
7070
slider = sliderElement.noUiSlider;
7171
slider.on('update', (val, handle) => {
7272
value = format(val);
73-
localValue = value;
73+
internalValue = value;
7474
dispatch('update', { value: val, handle });
7575
});
7676
slider.on('change', (val, handle) => {
@@ -82,22 +82,20 @@
8282
};
8383
});
8484
85-
$: {
86-
if (slider != null) {
87-
slider.updateOptions({
88-
range: { min, max },
89-
orientation: vertical ? 'vertical' : 'horizontal',
90-
connect,
91-
margin,
92-
limit,
93-
padding,
94-
});
95-
}
85+
$: if (slider) {
86+
if(value !== internalValue) slider.set(value, false);
87+
slider.updateOptions({
88+
start: value,
89+
range: { min, max },
90+
orientation: vertical ? 'vertical' : 'horizontal',
91+
connect,
92+
margin,
93+
limit,
94+
padding,
95+
step
96+
}, false);
9697
}
9798
98-
afterUpdate(() => {
99-
if (slider && value !== localValue) slider.set(value, false);
100-
});
10199
</script>
102100

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

0 commit comments

Comments
 (0)