fix: performance issue with atom storage persistence #4281
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe Your Changes
This PR fixes the message rendering issue when caching it with jotai local storage, using composed atom of cache and storage
Summary of Code Changes
The Git diff shows the following changes to the
ChatMessage.atom.ts
file:createJSONStorage
is removed.chatMessagesStorage
is added.chatMessagesStorage
is created usingatomWithStorage
.cachedMessages
is defined as an atom to store cached chat messages.chatMessages
is modified to first read fromcachedMessages
. IfcachedMessages
has no value, it reads fromchatMessagesStorage
.chatMessages
now sets bothcachedMessages
andchatMessagesStorage
.The overall goal seems to be improving the efficiency of accessing chat messages by caching them locally in addition to storing them persistently.