* persist startup queries
* Use IDB for query storage (#9687)
* Add storage abstraction for persisted query data
Introduce a platform-specific storage abstraction layer for react-query
persistence:
- Native: Uses MMKV for high-performance synchronous storage
- Web: Uses IndexedDB via the `idb` library for efficient async storage
This replaces the previous AsyncStorage implementation with more performant
platform-native solutions. The abstraction maintains API compatibility with
@tanstack/query-async-storage-persister.
* Refactor storage abstraction to use factory pattern
Change createPersistedQueryStorage to a factory function that accepts a
storage ID, allowing multiple isolated storage instances:
- Native: Each instance gets its own MMKV store
- Web: Each instance gets its own IndexedDB database
Adopt the factory pattern in:
- react-query.tsx: Uses 'persisted_queries' storage
- ageAssurance/data.tsx: Uses 'age_assurance' storage
This provides better separation between different query client caches
and allows each to be managed independently.
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Refactor to use archival storage
(cherry picked from commit a773b40e41c96f821cd32260919ce1437c0fc3ab)
* Improve archive db types
(cherry picked from commit 80e4959ba2aa00c984c26aed2f7dfae1095720b0)
* rm idb
* clear on logout, bust on app version
* create abstraction for persisting queries, make gcTime infinite
* Rm abstraction
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* Convert lightbox to get/set
* Work around software-mansion/react-native-reanimated#6613
* Use get/set in more places
* Port MainScrollProvider to get/set
* Port more to get/set
* Port composer to get/set
* Remove unnecessary thread hops in composer
* Port more things to get/set
* Convert more to get/set, remove redundant runOnJS
* Convert remaining cases to get/set
* fetch all accounts in one go
* delete unused component
* add safeareaview to logged out layout
* add safe area insets to LoggedOut view
* add safe area insets to the error boundary
* sanitize displaynames/handles
* use button for X
* increase spacing
* add dark theme selection to settings/schema
* use `useThemePrefs` where needed
* adjust theme providers to support various themes
* update storybook
* handle web themes
* better themeing for web
* dont show dark theme prefs when color mode is light
* drop the inverted text change on oled theme
* get the color mode inside of `useColorModeTheme`
* use `ThemeName` type everywhere
* typo
* use dim/dark instead of dark/oled
* prevent any fickers on web
* fix styles
* use `dim` for dark default
* more cleanup
* 🤔
* set system background color
* ts
* Don't use mask for android at all
* Handle reduced motion
* Add dark splash
* Add dark config
* Fix android version code
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Bump to react-native@0.73, bump expo@next
Includes bumps for all expo deps and dev dependencies. Updates
react-native patch and others, and removes the babel-preset-expo patch.
* Remove duplicate Splash ref
* Bump more deps
* Properly install expo-notifications
* Bump webview dep
* Bump packages according to expo fix; remove pager-view patch as it is no longer needed
* Don't access expo-camera from Web
* Fix crypto dep on web
* Fix some type issues
* Build esnext modules to support dynamic imports
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>