[PR #31565] refactor: replace react-papaparse with native papaparse #33299

Open
opened 2026-02-21 20:53:02 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/31565

State: open
Merged: No


Summary

Fixes #31522

Remove the outdated react-papaparse package and replace with native papaparse library. This provides better React 19 compatibility and reduces bundle size.

Changes

  • Add utils/csv.ts with downloadCSV and parseCSV utilities
  • Update all CSV download/reader components to use new utilities
  • Update tests to mock the new utilities
  • Remove react-papaparse dependency, add papaparse and @types/papaparse

Files Changed

  • web/utils/csv.ts - New CSV utility functions
  • web/app/components/share/text-generation/run-batch/csv-download/index.tsx
  • web/app/components/share/text-generation/run-batch/csv-reader/index.tsx
  • web/app/components/share/text-generation/run-batch/res-download/index.tsx
  • web/app/components/app/annotation/header-opts/index.tsx
  • web/app/components/app/annotation/batch-add-annotation-modal/csv-downloader.tsx
  • web/app/components/datasets/documents/detail/batch-modal/csv-downloader.tsx
  • Updated corresponding test files

Screenshots

Before After
Uses react-papaparse hooks Uses native papaparse with utility functions

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran make lint and make type-check (backend) and cd web && npx lint-staged (frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/31565 **State:** open **Merged:** No --- ## Summary Fixes #31522 Remove the outdated `react-papaparse` package and replace with native `papaparse` library. This provides better React 19 compatibility and reduces bundle size. ### Changes - Add `utils/csv.ts` with `downloadCSV` and `parseCSV` utilities - Update all CSV download/reader components to use new utilities - Update tests to mock the new utilities - Remove `react-papaparse` dependency, add `papaparse` and `@types/papaparse` ### Files Changed - `web/utils/csv.ts` - New CSV utility functions - `web/app/components/share/text-generation/run-batch/csv-download/index.tsx` - `web/app/components/share/text-generation/run-batch/csv-reader/index.tsx` - `web/app/components/share/text-generation/run-batch/res-download/index.tsx` - `web/app/components/app/annotation/header-opts/index.tsx` - `web/app/components/app/annotation/batch-add-annotation-modal/csv-downloader.tsx` - `web/app/components/datasets/documents/detail/batch-modal/csv-downloader.tsx` - Updated corresponding test files ## Screenshots | Before | After | |--------|-------| | Uses react-papaparse hooks | Uses native papaparse with utility functions | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `make lint` and `make type-check` (backend) and `cd web && npx lint-staged` (frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:53:02 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#33299