Merge pull request #4281 from janhq/fix/performance-issue-with-atom-storage
fix: performance issue with atom storage persistence
This commit is contained in:
commit
14b1e61576
@ -19,11 +19,20 @@ const CHAT_MESSAGE_NAME = 'chatMessages'
|
|||||||
/**
|
/**
|
||||||
* Stores all chat messages for all threads
|
* Stores all chat messages for all threads
|
||||||
*/
|
*/
|
||||||
export const chatMessages = atomWithStorage<Record<string, ThreadMessage[]>>(
|
export const chatMessagesStorage = atomWithStorage<
|
||||||
CHAT_MESSAGE_NAME,
|
Record<string, ThreadMessage[]>
|
||||||
{},
|
>(CHAT_MESSAGE_NAME, {}, undefined, { getOnInit: true })
|
||||||
undefined,
|
|
||||||
{ getOnInit: true }
|
export const cachedMessages = atom<Record<string, ThreadMessage[]>>()
|
||||||
|
/**
|
||||||
|
* Retrieve chat messages for all threads
|
||||||
|
*/
|
||||||
|
export const chatMessages = atom(
|
||||||
|
(get) => get(cachedMessages) ?? get(chatMessagesStorage),
|
||||||
|
(_get, set, newValue: Record<string, ThreadMessage[]>) => {
|
||||||
|
set(cachedMessages, newValue)
|
||||||
|
;(() => set(chatMessagesStorage, newValue))()
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user