@@ -150,28 +150,34 @@ export const AppProvider = ({ children }: { children: ReactNode }) => {
150150 return Promise . all ( auth . accounts . map ( refreshAccount ) ) ;
151151 } , [ auth . accounts ] ) ;
152152
153+ // TODO - Remove migration logic in future release
153154 const migrateAuthTokens = useCallback ( async ( ) => {
154- let tokensMigrated = false ;
155-
156- for ( const account of auth . accounts ) {
157- /**
158- * Check if the account is using an encrypted token.
159- * If not encrypt it and save it.
160- */
161- try {
162- await decryptValue ( account . token ) ;
163- } catch ( _err ) {
164- const encryptedToken = await encryptValue ( account . token ) ;
165- account . token = encryptedToken as Token ;
166-
167- tokensMigrated = true ;
168- }
169- }
155+ const migratedAccounts = await Promise . all (
156+ auth . accounts . map ( async ( account ) => {
157+ try {
158+ await decryptValue ( account . token ) ;
159+ return account ;
160+ } catch {
161+ const encryptedToken = ( await encryptValue ( account . token ) ) as Token ;
162+ return { ...account , token : encryptedToken } ;
163+ }
164+ } ) ,
165+ ) ;
170166
171- if ( tokensMigrated ) {
172- setAuth ( auth ) ;
173- saveState ( { auth, settings } ) ;
167+ const tokensMigrated = migratedAccounts . some (
168+ ( account , index ) => account . token !== auth . accounts [ index ] ?. token ,
169+ ) ;
170+
171+ if ( ! tokensMigrated ) {
172+ return ;
174173 }
174+
175+ const updatedAuth : AuthState = {
176+ accounts : migratedAccounts ,
177+ } ;
178+
179+ setAuth ( updatedAuth ) ;
180+ saveState ( { auth : updatedAuth , settings } ) ;
175181 } , [ auth , settings ] ) ;
176182
177183 // biome-ignore lint/correctness/useExhaustiveDependencies: Fetch new notifications when account count or filters change
0 commit comments