Skip to content

Perf: virtualize the transaction list over 200 rows - #1581

Merged
Baskarayelu merged 4 commits into
Remitwise-Org:mainfrom
1nonlypiece:perf/1490-virtualize-transaction-list
Jul 30, 2026
Merged

Perf: virtualize the transaction list over 200 rows#1581
Baskarayelu merged 4 commits into
Remitwise-Org:mainfrom
1nonlypiece:perf/1490-virtualize-transaction-list

Conversation

@1nonlypiece

Copy link
Copy Markdown
Contributor

Summary

app/dashboard/transaction-history/page.tsx already had react-window-based virtualization written (FixedSizeList, TransactionVirtualRow) -- but react-window was never added to package.json and isn't in node_modules at all, so the import silently failed to resolve. It was papered over with // @ts-ignore on the import and const List = FixedSizeList as any, which suppressed the type error but not the runtime module-resolution failure -- this page could not actually build.

Adds react-window (+ @types/react-window) as real dependencies and removes the @ts-ignore/as any workarounds now that the types resolve properly (no prop mismatches -- the existing FixedSizeList usage already matched the real v1 API exactly).

Testing

  • npx tsc --noEmit -- the page typechecks cleanly with react-window's real types, no new errors
  • node node_modules/vitest/vitest.mjs run ... tests/unit/dashboard/transaction-history-virtualization.test.tsx -- new test renders FixedSizeList with 250 rows and asserts only a subset ever mounts into the DOM (proof it's genuinely windowing, not just sitting in a scrollable container)
  • npm run test:unit:vitest -- 298 passing (was 297 on main), zero regressions
  • npx eslint on both touched files -- clean

Closes #1490

@Baskarayelu
Baskarayelu merged commit 529f258 into Remitwise-Org:main Jul 30, 2026
7 of 12 checks passed
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.

Perf: virtualize the transaction list over 200 rows

2 participants