import { useContext } from 'react'; import { useMessages } from 'components/hooks'; import { Icon, Form, FormButtons, FormInput, FormRow, PopupTrigger, Popup, SubmitButton, TextField, Button, } from 'react-basics'; import Icons from 'components/icons'; import FunnelStepAddForm from './FunnelStepAddForm'; import { ReportContext } from '../[reportId]/Report'; import BaseParameters from '../[reportId]/BaseParameters'; import ParameterList from '../[reportId]/ParameterList'; import PopupForm from '../[reportId]/PopupForm'; import styles from './FunnelParameters.module.css'; export function FunnelParameters() { const { report, runReport, updateReport, isRunning } = useContext(ReportContext); const { formatMessage, labels } = useMessages(); const { id, parameters } = report || {}; const { websiteId, dateRange, steps } = parameters || {}; const queryDisabled = !websiteId || !dateRange || steps?.length < 2; const handleSubmit = (data: any, e: any) => { e.stopPropagation(); e.preventDefault(); if (!queryDisabled) { runReport(data); } }; const handleAddStep = (step: { type: string; value: string }) => { updateReport({ parameters: { steps: parameters.steps.concat(step) } }); }; const handleRemoveStep = (index: number) => { const steps = [...parameters.steps]; delete steps[index]; updateReport({ parameters: { steps: steps.filter(n => n) } }); }; const AddStepButton = () => { return ( ); }; return (
}> {steps.map((step: { type: string; value: string }, index: number) => { return ( handleRemoveStep(index)}>
{step.type === 'url' ? : }
{step.value}
); })}
{formatMessage(labels.runQuery)} ); } export default FunnelParameters;