Skip to content

build(deps): DEP-7 — redux 5 + react-redux 9 + reselect 5 + redux-saga 1.5 (WALLET-1333)#1383

Merged
Comp0te merged 2 commits into
release/2.6.0from
WALLET-1333-dep-7-redux-5-react-redux-9-reselect-5-redux-saga-1-5
Jul 2, 2026
Merged

build(deps): DEP-7 — redux 5 + react-redux 9 + reselect 5 + redux-saga 1.5 (WALLET-1333)#1383
Comp0te merged 2 commits into
release/2.6.0from
WALLET-1333-dep-7-redux-5-react-redux-9-reselect-5-redux-saga-1-5

Conversation

@ost-ptk

@ost-ptk ost-ptk commented Jul 2, 2026

Copy link
Copy Markdown
Member

Summary

  • Bump redux 4.2.1 → 5.0.1, react-redux 8.1.3 → 9.3.0, reselect 4.1.7 → 5.2.0, redux-saga 1.2.3 → 1.5.0.
  • Fix a dead deep-import (react-redux/es/exportsreact-redux) in src/apps/signature-request/index.tsx, left over from react-redux 8 — the deep path no longer resolves under react-redux 9's ESM exports map.
  • Wrap four previously-unmemoized selectors (selectVaultAccountsPublicKeys, selectVaultAccountsExceptLedgersAccounts, selectAllContactsNames, selectAllContactsPublicKeys) in createSelector, and split selectIsAccountConnected's tuple-returning input selector into two scalar input selectors. Both were returning a new reference on every call — reselect 5's new default inputStabilityCheck / react-redux 9's stabilityCheck now surface this as dev-mode console warnings; the underlying re-render cost existed before this bump too.

No AnyActionUnknownAction rename, no createStoreconfigureStore migration, and no typesafe-actions removal — all out of scope for this ticket.

Jira: https://make-software.atlassian.net/browse/WALLET-1333

Test plan

  • npm run tsc — clean, no errors (no cast needed in root-reducer.ts's combineReducers)
  • npm run lint — 0 errors (175 pre-existing unrelated warnings)
  • npm run format:check — clean
  • npm test — 32/32 passing
  • npm run build:chrome / build:firefox — succeed
  • Confirmed both pre-existing @ts-ignore lines in src/background/redux/index.ts are still required under redux 5 (removed them experimentally, tsc immediately errored, reverted)
  • Manual runtime smoke test in Chrome: background service worker boots and creates the store, popup renders via useSelector after unlocking, dispatching a mutation propagates through popupStateUpdated to the UI replica, signature-request app (sign/delegate/undelegate/redelegate) works correctly

…a 1.5 (WALLET-1333)

Bump redux 4.2.1 -> 5.0.1, react-redux 8.1.3 -> 9.3.0, reselect 4.1.7 -> 5.2.0,
and redux-saga 1.2.3 -> 1.5.0.

Fix a dead deep-import (`react-redux/es/exports`) left over from react-redux 8,
which no longer resolves under react-redux 9's ESM `exports` map.

Wrap four previously-unmemoized selectors (selectVaultAccountsPublicKeys,
selectVaultAccountsExceptLedgersAccounts, selectAllContactsNames,
selectAllContactsPublicKeys) in createSelector, and split
selectIsAccountConnected's tuple-returning input selector into two scalar
input selectors — both were returning a new reference on every call, which
reselect 5's new default inputStabilityCheck/react-redux 9's stabilityCheck
now surface as dev-mode warnings.
@Comp0te Comp0te merged commit afed9cc into release/2.6.0 Jul 2, 2026
1 check passed
@Comp0te Comp0te deleted the WALLET-1333-dep-7-redux-5-react-redux-9-reselect-5-redux-saga-1-5 branch July 2, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants