diff --git a/App.tsx b/App.tsx
index 145069e9..4a016667 100644
--- a/App.tsx
+++ b/App.tsx
@@ -3,7 +3,7 @@ import { QueryCache, ReactQueryCacheProvider, setConsole } from 'react-query'
import { Provider } from 'react-redux'
import { Index } from 'src/Index'
-import store from 'src/store'
+import { store } from 'src/store'
const queryCache = new QueryCache()
diff --git a/src/api/client.ts b/src/api/client.ts
index 98efb6b5..e8536891 100644
--- a/src/api/client.ts
+++ b/src/api/client.ts
@@ -1,4 +1,4 @@
-import store, { RootState } from 'src/store'
+import { store, RootState } from 'src/store'
import ky from 'ky'
const client = async ({
diff --git a/src/components/Status/ActionsStatus.tsx b/src/components/Status/ActionsStatus.tsx
index b58ec455..e657ed82 100644
--- a/src/components/Status/ActionsStatus.tsx
+++ b/src/components/Status/ActionsStatus.tsx
@@ -14,7 +14,7 @@ import { Feather } from '@expo/vector-icons'
import client from 'src/api/client'
import { getLocalAccountId } from 'src/utils/slices/instancesSlice'
-import store from 'src/store'
+import {store} from 'src/store'
const fireMutation = async ({
id,
diff --git a/src/components/Status/Header.tsx b/src/components/Status/Header.tsx
index 7bbf1021..35e50e0a 100644
--- a/src/components/Status/Header.tsx
+++ b/src/components/Status/Header.tsx
@@ -13,7 +13,7 @@ import {
getLocalAccountId,
getLocalUrl
} from 'src/utils/slices/instancesSlice'
-import store from 'src/store'
+import {store} from 'src/store'
const fireMutation = async ({
id,
diff --git a/src/screens/Me/Root.tsx b/src/screens/Me/Root.tsx
index b9bcc36c..d2fc013b 100644
--- a/src/screens/Me/Root.tsx
+++ b/src/screens/Me/Root.tsx
@@ -1,12 +1,15 @@
import React from 'react'
import { View } from 'react-native'
-import store from 'src/store'
-import { getLocalRegistered } from 'src/utils/slices/instancesSlice'
+import { useSelector } from 'react-redux'
+
+import { RootState } from 'src/store'
import Login from './Root/Login'
const ScreenMeRoot: React.FC = () => {
- const localRegistered = getLocalRegistered(store.getState())
+ const localRegistered = useSelector(
+ (state: RootState) => state.instances.local.url
+ )
return {localRegistered ? <>> : }
}
diff --git a/src/screens/Shared/Compose.tsx b/src/screens/Shared/Compose.tsx
index 589c2268..bedf281c 100644
--- a/src/screens/Shared/Compose.tsx
+++ b/src/screens/Shared/Compose.tsx
@@ -10,7 +10,7 @@ import { SafeAreaView } from 'react-native-safe-area-context'
import { createNativeStackNavigator } from 'react-native-screens/native-stack'
import { useNavigation } from '@react-navigation/native'
-import store from 'src/store'
+import { store } from 'src/store'
import PostMain from './Compose/PostMain'
import client from 'src/api/client'
import { getLocalAccountPreferences } from 'src/utils/slices/instancesSlice'
diff --git a/src/store.ts b/src/store.ts
index f7be2d7e..c002c584 100644
--- a/src/store.ts
+++ b/src/store.ts
@@ -1,13 +1,23 @@
import { configureStore } from '@reduxjs/toolkit'
+import { persistReducer, persistStore } from 'redux-persist'
+import createSecureStore from 'redux-persist-expo-securestore'
import instancesSlice from 'src/utils/slices/instancesSlice'
+const secureStorage = createSecureStore()
+
+const instancesPersistConfig = {
+ key: 'instances',
+ storage: secureStorage
+}
+
const store = configureStore({
reducer: {
- instances: instancesSlice
+ instances: persistReducer(instancesPersistConfig, instancesSlice)
}
})
-export default store
+let persistor = persistStore(store)
+export { store, persistor }
export type RootState = ReturnType