Skip to content

Commit 1de34ef

Browse files
authored
fix: fix the issue where the value cannot be obtained for the first time during an over-the-air update (#252)
1 parent fa4530e commit 1de34ef

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

frontend/src/renderer/src/store/index.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,17 @@
33

44
import { combineReducers, configureStore } from '@reduxjs/toolkit'
55
import { useDispatch, useSelector, useStore } from 'react-redux'
6-
import { FLUSH, PAUSE, PERSIST, persistReducer, persistStore, PURGE, REGISTER, REHYDRATE } from 'redux-persist'
6+
import {
7+
createMigrate,
8+
FLUSH,
9+
PAUSE,
10+
PERSIST,
11+
persistReducer,
12+
persistStore,
13+
PURGE,
14+
REGISTER,
15+
REHYDRATE
16+
} from 'redux-persist'
717
import storage from 'redux-persist/lib/storage'
818

919
import storeSyncService from '../services/StoreSyncService'
@@ -15,6 +25,7 @@ import events from './events'
1525
import chatHistory from './chat-history'
1626

1727
import { getLogger } from '@shared/logger/renderer'
28+
import { migrations } from './migrations'
1829

1930
const logger = getLogger('Store')
2031

@@ -32,7 +43,8 @@ const persistedReducer = persistReducer(
3243
{
3344
key: 'vikingdb',
3445
storage,
35-
version: 1,
46+
version: 2,
47+
migrate: createMigrate(migrations, { debug: false }),
3648
blacklist: ['vault', 'screen', 'chatHistory'] // Do not persist vault, vault data is stored in the sqlite data table
3749
},
3850
rootReducer
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { getLogger } from '@shared/logger/renderer'
2+
import { omit } from 'lodash'
3+
4+
const logger = getLogger('migrations')
5+
6+
const migrations = {
7+
2: (state: any): any => {
8+
logger.info('Running redux-persist migration for version 2...')
9+
10+
if (!state) {
11+
logger.warn('Migration v2: Received undefined state, returning state as-is.')
12+
return state
13+
}
14+
15+
const newState = omit(state, ['chatHistory'])
16+
17+
if (state.chatHistory) {
18+
logger.info('Migration v2: Removed "chatHistory" from persisted state.')
19+
} else {
20+
logger.info('Migration v2: "chatHistory" not found in state, nothing to remove.')
21+
}
22+
23+
return newState
24+
}
25+
}
26+
export { migrations }

0 commit comments

Comments
 (0)