Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(persisted-state): write state to storage even if only a nested property is changed. fixes #224 #225

Merged
merged 2 commits into from
Mar 17, 2025

Conversation

gyszalai
Copy link
Contributor

Integrated Rich Harris's proxy solution to solve watching nested properties:
https://github.com/Rich-Harris/local-storage-test/blob/main/src/lib/storage.svelte.ts

Had to update existing tests as the getter for current always deserializes the state from storage.

Copy link

changeset-bot bot commented Feb 23, 2025

🦋 Changeset detected

Latest commit: b78b94f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
runed Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@webJose
Copy link
Contributor

webJose commented Feb 28, 2025

I would say this is not the best approach. One can leverage the deep reactive nature of Svelte v5 and have an $effect serialize and store the value. This should pick up on any changed property along the chain of objects.

@gyszalai
Copy link
Contributor Author

gyszalai commented Mar 3, 2025

I would say this is not the best approach. One can leverage the deep reactive nature of Svelte v5 and have an $effect serialize and store the value. This should pick up on any changed property along the chain of objects.

@webJose you are absolutely right! My first solution was to use $effect, it was much simpler. However, with that solution the state is not written to the storage synchronously, but asynchronously in the next tick and this broke all tests.

@TGlide
Copy link
Member

TGlide commented Mar 17, 2025

This is the best approach until sveltejs/svelte#15069 lands. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants