'use client' import type { FC } from 'react' import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { useCSVReader } from 'react-papaparse' import { Csv as CSVIcon } from '@/app/components/base/icons/src/public/files' type Props = Readonly<{ onParsed: (data: string[][]) => void }> const CSVReader: FC = ({ onParsed }) => { const { t } = useTranslation() const { CSVReader } = useCSVReader() const [zoneHover, setZoneHover] = useState(false) return ( { onParsed(results.data) setZoneHover(false) }} onDragOver={(event: DragEvent) => { event.preventDefault() setZoneHover(true) }} onDragLeave={(event: DragEvent) => { event.preventDefault() setZoneHover(false) }} > {({ getRootProps, acceptedFile }: any) => ( <>
{acceptedFile ? (
{acceptedFile.name.replace(/.csv$/, '')} .csv
) : (
{t(($) => $['generation.csvUploadTitle'], { ns: 'share' })} {t(($) => $['generation.browse'], { ns: 'share' })}
)}
)}
) } export default React.memo(CSVReader)