diff --git a/packages/core/src/csv-importer/csv-importer-column-map-row.tsx b/packages/core/src/csv-importer/csv-importer-column-map-row.tsx new file mode 100644 index 0000000..6ddab9d --- /dev/null +++ b/packages/core/src/csv-importer/csv-importer-column-map-row.tsx @@ -0,0 +1,85 @@ +import React, { useContext, useEffect, useMemo, useState } from 'react' +import { Button, CsvImporterContext, Divider, IconLib, If, Select, SelectOption, Text, View, useVisibility } from '../' + +export type CsvImporterColumnMapRowProps = { + column: any + selected: SelectOption + index: number + onSelect: (value) => void +} + +export const CsvImporterColumnMapRow = (props) => { + const { column, selected, index, onSelect } = props + const { visible, show, hide } = useVisibility(true) + const { schema, sample } = useContext(CsvImporterContext) + const [sampleData, setSampleData] = useState([]) + const options = useMemo( + () => + schema.map(({ key, label }) => ({ + key, + label, + })), + [schema] + ) + + const handleSelect = (option, dismiss) => { + onSelect(option.key) + dismiss() + } + + useEffect(() => { + setSampleData(sample.map((row: any) => row[index].value)) + }, [sample]) + + return ( + + + + {column.value} + + + {sampleData.map((text, index) => ( + + {text} + + ))} + + +