@@ -122,19 +122,22 @@ export async function checkAndUpgradeSaveSetting(val: any) {
122122 let state : SettingState & { [ key : string ] : any } = data . val
123123 if ( typeof state !== 'object' ) return defaultState
124124 state . load = false
125+ debugger
125126 let version = Number ( data . version )
127+ //为了保持永远是最新的快捷键选项列表,但保留住用户的自定义设置,去掉无效的快捷键选项
128+ //例: 2版本,可能有快捷键A。3版本没有了
129+ checkRiskKey ( defaultState . shortcutKeyMap , state . shortcutKeyMap )
130+
131+ let updateLocalData = false
126132 if ( version <= 17 ) {
127133 defaultState . webAppVersion = ( await get ( APP_VERSION . key ) ) ?? APP_VERSION . version
128- }
129- if ( version <= 18 ) {
130- defaultState . shortcutKeyMap [ ShortcutKey . Next ] = DefaultShortcutKeyMap [ ShortcutKey . Next ]
134+ updateLocalData = true
131135 }
132136 //3/20晚上10点25推的代码,这个地方出了一个bug,ShortcutKey没导入,导致抛异常后返回了默认值,所有的用户的setting都变成默认值了。
133137 //在这里读取之前的快照,如果存在则从里面读取setting的firstTime,
134138 //判断是否与当前值相等,不相等则取快照的值并将本地的update_at更新,以免被远程覆盖
135139 if ( version === 19 ) {
136140 try {
137- let firstTimePatchedFromSnapshot = false
138141 const snapshotCutoffTime = new Date ( '2026-03-20T22:25:00+08:00' ) . getTime ( )
139142 const rawIndex = ( await get ( BACKUP_INDEX_KEY ) ) as Array < { key ?: string ; createdAt ?: number } > | null
140143 const index = Array . isArray ( rawIndex ) ? rawIndex : [ ]
@@ -154,20 +157,22 @@ export async function checkAndUpgradeSaveSetting(val: any) {
154157 const currentFirstTime = Number ( state ?. firstTime )
155158 if ( Number . isFinite ( snapshotFirstTime ) && snapshotFirstTime > 0 && snapshotFirstTime !== currentFirstTime ) {
156159 state . firstTime = snapshotFirstTime
157- firstTimePatchedFromSnapshot = true
160+ updateLocalData = true
158161 }
159- ; ( defaultState as any ) . __firstTimePatchedFromSnapshot = firstTimePatchedFromSnapshot
160162 }
161163 } catch ( e ) {
162164 console . warn ( 'firstTime 快照回填跳过或失败,忽略并继续' , e )
163165 }
164166 }
165167
166- //为了保持永远是最新的快捷键选项列表,但保留住用户的自定义设置,去掉无效的快捷键选项
167- //例: 2版本,可能有快捷键A。3版本没有了
168- checkRiskKey ( defaultState . shortcutKeyMap , state . shortcutKeyMap )
168+ if ( version <= 20 ) {
169+ defaultState . shortcutKeyMap [ ShortcutKey . Next ] = DefaultShortcutKeyMap [ ShortcutKey . Next ]
170+ updateLocalData = true
171+ }
172+
169173 delete state . shortcutKeyMap
170174 checkRiskKey ( defaultState , state )
175+ ; ( defaultState as any ) . __updateLocalData = updateLocalData
171176 return defaultState
172177 } catch ( e ) {
173178 await saveHashSnapshot ( '数据解析异常-自动备份' , '' )
0 commit comments