diff --git a/bun.lock b/bun.lock index fc5ea934..c6983334 100644 --- a/bun.lock +++ b/bun.lock @@ -20,7 +20,6 @@ "@shopify/flash-list": "2.2.1", "@tamagui/config": "1.144.3", "@tanstack/query-async-storage-persister": "5.90.12", - "@tanstack/query-sync-storage-persister": "^5.90.22", "@tanstack/react-query": "5.90.12", "@tanstack/react-query-persist-client": "5.90.12", "@testing-library/react-native": "13.3.3", @@ -837,8 +836,6 @@ "@tanstack/query-persist-client-core": ["@tanstack/query-persist-client-core@5.91.9", "", { "dependencies": { "@tanstack/query-core": "5.90.10" } }, "sha512-LliMZl/pkO/6vRf5//fO8nl4UCfM1LQsnT+N0aRYkK7bqoM3QdqHxD65EApmJRypKkqaWmiyulPG3Mi1NYuyIA=="], - "@tanstack/query-sync-storage-persister": ["@tanstack/query-sync-storage-persister@5.90.22", "", { "dependencies": { "@tanstack/query-core": "5.90.20", "@tanstack/query-persist-client-core": "5.91.19" } }, "sha512-QoOHewbI9a/7hezbVXlZOOCkF4oTnOpAGNMYiObUZm+jpEoLF5YqGMg0iDv3laSEymz81Zw8HJ8UFxP7mwEmqw=="], - "@tanstack/react-query": ["@tanstack/react-query@5.90.12", "", { "dependencies": { "@tanstack/query-core": "5.90.12" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg=="], "@tanstack/react-query-persist-client": ["@tanstack/react-query-persist-client@5.90.12", "", { "dependencies": { "@tanstack/query-persist-client-core": "5.91.9" }, "peerDependencies": { "@tanstack/react-query": "^5.90.10", "react": "^18 || ^19" } }, "sha512-o51hwImpKgb85FnFljtCXcUzuLXpKONF9N6bhKfifPL3SNSj8neh1a2aHQd7sN9mbeIeNfGMGJuDpSt/Fc3GwQ=="], @@ -2627,10 +2624,6 @@ "@react-native/metro-babel-transformer/@babel/core": ["@babel/core@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], - "@tanstack/query-sync-storage-persister/@tanstack/query-core": ["@tanstack/query-core@5.90.20", "", {}, "sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg=="], - - "@tanstack/query-sync-storage-persister/@tanstack/query-persist-client-core": ["@tanstack/query-persist-client-core@5.91.19", "", { "dependencies": { "@tanstack/query-core": "5.90.20" } }, "sha512-whrASqbVq8261Ue+/ZzpHsrLDYVfRaENs4HTdLuYKxawkGWzdMfV7BmOdWl8ZF0mEBEbrQR8V6oE3R635JF2Fw=="], - "@tanstack/react-query/@tanstack/query-core": ["@tanstack/query-core@5.90.12", "", {}, "sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg=="], "@types/babel__core/@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], diff --git a/package.json b/package.json index 1fd08759..dfdb2ce2 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,6 @@ "@shopify/flash-list": "2.2.1", "@tamagui/config": "1.144.3", "@tanstack/query-async-storage-persister": "5.90.12", - "@tanstack/query-sync-storage-persister": "^5.90.22", "@tanstack/react-query": "5.90.12", "@tanstack/react-query-persist-client": "5.90.12", "@testing-library/react-native": "13.3.3", diff --git a/src/constants/storage.ts b/src/constants/storage.ts index 0d27595b..60e9a16d 100644 --- a/src/constants/storage.ts +++ b/src/constants/storage.ts @@ -1,9 +1,24 @@ import { createMMKV } from 'react-native-mmkv' -import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' +import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' +import { AsyncStorage as TanstackAsyncStorage } from '@tanstack/react-query-persist-client' import { StateStorage } from 'zustand/middleware' +import AsyncStorage from '@react-native-async-storage/async-storage' export const storage = createMMKV() +const storageFunctions = { + setItem: async (key: string, value: string) => { + await AsyncStorage.setItem(key, value) + }, + getItem: async (key: string) => { + const value = await AsyncStorage.getItem(key) + return value === undefined ? null : value + }, + removeItem: async (key: string) => { + await AsyncStorage.removeItem(key) + }, +} + const mmkvStorageFunctions = { setItem: (key: string, value: string) => { storage.set(key, value) @@ -17,8 +32,12 @@ const mmkvStorageFunctions = { }, } -export const queryClientPersister = createSyncStoragePersister({ - storage: mmkvStorageFunctions, +const clientStorage: TanstackAsyncStorage = storageFunctions + +export const queryClientPersister = createAsyncStoragePersister({ + storage: clientStorage, }) +export const stateStorage: StateStorage = storageFunctions + export const mmkvStateStorage: StateStorage = mmkvStorageFunctions