import { useFields, useMessages } from 'components/hooks'; import Icons from 'components/icons'; import { useContext } from 'react'; import { Button, FormRow, Icon, Popup, PopupTrigger } from 'react-basics'; import FieldSelectForm from '../[reportId]/FieldSelectForm'; import ParameterList from '../[reportId]/ParameterList'; import PopupForm from '../[reportId]/PopupForm'; import { ReportContext } from '../[reportId]/Report'; export function FieldParameters() { const { report, updateReport } = useContext(ReportContext); const { formatMessage, labels } = useMessages(); const { parameters } = report || {}; const { fields } = parameters || {}; const { fields: fieldOptions } = useFields(); const handleAdd = (value: { name: any }) => { if (!fields.find(({ name }) => name === value.name)) { updateReport({ parameters: { fields: fields.concat(value) } }); } }; const handleRemove = (name: string) => { updateReport({ parameters: { fields: fields.filter(f => f.name !== name) } }); }; const AddButton = () => { return ( !fields.find(f => f.name === name))} onSelect={handleAdd} showType={false} /> ); }; return ( }> {fields.map(({ name }) => { return ( handleRemove(name)}> {fieldOptions.find(f => f.name === name)?.label} ); })} ); } export default FieldParameters;