Skip to content

feat(wallet): add CSV/JSON export - #1087

Merged
mikewheeleer merged 2 commits into
Talenttrust:mainfrom
Francis6-git:feature/wallet-export-issue-850
Jul 30, 2026
Merged

feat(wallet): add CSV/JSON export#1087
mikewheeleer merged 2 commits into
Talenttrust:mainfrom
Francis6-git:feature/wallet-export-issue-850

Conversation

@Francis6-git

Copy link
Copy Markdown
Contributor

Description:
Adds client-side CSV and JSON export functionality for the wallet view. Users can export either the entire currently filtered wallet view or selected bulk items without triggering a server round-trip.

Changes Included:

  1. src/lib/exportWallet.ts:
  • Implemented csvEscape to handle RFC 4180 quoting and tab-prefix formula injection defense (=, +, -, @).
  • Added walletItemsToCsv and walletItemsToJson formatting utilities.
  • Added triggerDownload, downloadWalletCsv, and downloadWalletJson helpers using temporary Blob object URLs.
  1. src/components/wallet/WalletBulkToolbar.tsx:
  • Integrated CSV and JSON export triggers.
  • Added keyboard navigation controls (ArrowKeys, Home, End, Escape) and ARIA labels.
  1. src/lib/tests/exportWallet.test.ts:
  • Comprehensive test suite covering formula injection defense, special character escaping, header-only empty views, filtered list handling, and mock DOM download triggers.

Closes #850

@drips-wave

drips-wave Bot commented Jul 30, 2026

Copy link
Copy Markdown

@Francis6-git Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@mikewheeleer
mikewheeleer merged commit 94937dc into Talenttrust:main Jul 30, 2026
1 check failed
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.

Add a CSV/JSON export button to wallet

2 participants