Skip to content

feat: (reputation): add CSV/JSON export - #1086

Merged
mikewheeleer merged 1 commit into
Talenttrust:mainfrom
Adejare10:feature/reputation-51-export
Jul 30, 2026
Merged

feat: (reputation): add CSV/JSON export#1086
mikewheeleer merged 1 commit into
Talenttrust:mainfrom
Adejare10:feature/reputation-51-export

Conversation

@Adejare10

Copy link
Copy Markdown
Contributor

Description

Implements client-side export of the current reputation view in CSV and JSON formats.

This adds an accessible export control that downloads the currently visible (filtered) reputation data without any server round-trip.

Changes

  • Added ReputationExportButton component.
  • Added reputationExport adapter to convert reputation events into exportable rows.
  • Integrated export into ReputationProfile using the currently visible reputation data.
  • Reused the existing export utility for client-side downloads.
  • Added comprehensive unit tests covering export behavior and accessibility.

Acceptance Criteria

  • ✅ Export currently filtered reputation view
  • ✅ CSV export with safe escaping
  • ✅ JSON export
  • ✅ Client-side download only
  • ✅ Accessible export control
  • ✅ No server round-trip

Tests Added

Export utility

  • CSV escaping (quotes, commas, newlines)
  • Empty/null values
  • Filter-respecting export
  • Empty view
  • CSV download trigger
  • JSON download trigger
  • URL cleanup

Export button

  • CSV activation
  • JSON activation
  • Disabled state for empty data
  • Accessibility (jest-axe)

Validation

Feature-specific tests:

  • 13/13 new tests passing.

Repository status:

  • npm run lint ✅ for all files changed in this PR.
  • next build compiles successfully but repository type-check currently fails due to an existing unrelated issue in src/app/milestones/page.tsx (SAMPLE_MILESTONES not imported).
  • Existing repository test failures are unrelated to this feature and were reproduced before these changes.

Notes

This PR intentionally limits its scope to the reputation export feature and does not modify unrelated existing issues.

Closes #845

@drips-wave

drips-wave Bot commented Jul 30, 2026

Copy link
Copy Markdown

@Adejare10 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

@Adejare10

Copy link
Copy Markdown
Contributor Author

I investigated the CI failures. The changes in this PR are limited to:

src/components/ReputationExportButton.tsx
src/lib/reputationExport.ts
associated tests
a two-line integration in ReputationProfile.tsx

The current CI failures are caused by pre-existing lint issues in unrelated files (contracts, milestones) and existing unresolved identifiers (clearSelection, KbdHint) already present in ReputationProfile.tsx. My changes do not modify or introduce those identifiers.

@mikewheeleer
mikewheeleer merged commit b8a8bb6 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 reputation

2 participants