Import: Enhancement - deferred import - #2154
Conversation
9a63258 to
6799832
Compare
6799832 to
06afd6f
Compare
JohnathanWhite
left a comment
There was a problem hiding this comment.
🤖 Automated review by Codex — gpt-5.6-sol, with findings verified locally against this PR's head commit before posting. Anything that didn't hold up was dropped.
Draft, so this is pre-review feedback — but this one looks like it needs a fix rather than a reply.
| 'isImportLedgerModalVisible', | ||
| 'showArchaxBanner', | ||
| 'importBannerMessage', | ||
| 'importIsFirstKey', |
There was a problem hiding this comment.
pendingImport and importProgress are persisted, so a killed import wedges the UI permanently
Only importBannerMessage and importIsFirstKey were added to appReduxPersistBlackList; the two other new fields, pendingImport and importProgress, are left persisted. Because the deferred import now continues in a detached IIFE after the user has navigated away, an app kill or crash mid-import persists pendingImport: true with a partial importProgress, and nothing on the next launch resets them — setPendingImport(false) is only dispatched from that IIFE's success and catch paths, which are gone. On rehydrate the user gets the import skeleton card in the Home carousel and a stuck progress bar, plus disabled={pendingImport} on the create/import controls in Crypto.tsx and WalletsAndKeys.tsx, so they cannot add or import any key at all. importIsFirstKey resets to false while pendingImport stays true, which makes the state internally inconsistent as well. These four fields look like they should all be blacklisted together.
No description provided.