mirror of https://github.com/sveltejs/svelte
fix: track SvelteDate snapshots in reactions (#18700)
Read the Date value through `getTime()` before cloning it to get reactive updates from `SvelteDate`. Closes #18698 --------- Co-authored-by: svelte-triage-bot <team@svelte.com> Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>pull/18467/merge
parent
4b61851ec8
commit
721244ad3b
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix: track SvelteDate snapshots in reactions
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
import { test } from '../../test';
|
||||||
|
import { tick } from 'svelte';
|
||||||
|
|
||||||
|
export default test({
|
||||||
|
async test({ assert, target }) {
|
||||||
|
assert.htmlEqual(target.innerHTML, '<button>update</button><p>1970-01-01T00:00:00.000Z</p>');
|
||||||
|
|
||||||
|
target.querySelector('button')?.click();
|
||||||
|
await tick();
|
||||||
|
|
||||||
|
assert.htmlEqual(target.innerHTML, '<button>update</button><p>1970-01-02T00:00:00.000Z</p>');
|
||||||
|
}
|
||||||
|
});
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<script>
|
||||||
|
import { SvelteDate } from 'svelte/reactivity';
|
||||||
|
|
||||||
|
const date = new SvelteDate(0);
|
||||||
|
const snapshot = $derived($state.snapshot(date));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<button onclick={() => date.setTime(86400000)}>update</button>
|
||||||
|
<p>{snapshot.toISOString()}</p>
|
||||||
Loading…
Reference in new issue