import { useFields, useMessages } from '@/components/hooks'; import { Icons } from '@/components/icons'; import { useContext } from 'react'; import { Button, FormRow, Icon, Popup, PopupTrigger } from '@umami/react-zen'; import { FieldSelectForm } from '../[reportId]/FieldSelectForm'; import { ParameterList } from '../[reportId]/ParameterList'; import { PopupForm } from '../[reportId]/PopupForm'; import { ReportContext } from './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} ); })} ); }