Пробуйте, оставляйте фидбек!
Уточню, ссылка на ютуб: https://www.youtube.com/watch?v=WYHC4bT2E-4
База с 02:50 до 06:40.
А если хочется чего-то поинтересней, вот как делается простое расширение для персиста, которое можно потом использовать на любом атоме:
const withLocalStorage =
(key?: string): GenericExt =>
(target) =>
target.extend(
withInit((state) => {
let snapshot = localStorage.getItem(key ?? target.name)
return snapshot ? JSON.parse(snapshot) : state
}),
withChangeHook((state) => {
localStorage.setItem(key ?? target.name, JSON.stringify(state))
}),
)
const search = atom('', 'search').extend(withLocalStorage())
const page = atom(0, 'page').extend(withLocalStorage())