import { PopoverContent, PopoverArrow, PopoverBody, useEventListener, } from '@chakra-ui/react' import { useTypebot } from 'contexts/TypebotContext/TypebotContext' import { ChoiceInputOptions, ConditionOptions, InputStep, InputStepType, LogicStepType, SetVariableOptions, Step, TextInputOptions, } from 'models' import { useRef } from 'react' import { TextInputSettingsBody, NumberInputSettingsBody, EmailInputSettingsBody, UrlInputSettingsBody, DateInputSettingsBody, } from './bodies' import { ChoiceInputSettingsBody } from './bodies/ChoiceInputSettingsBody' import { ConditionSettingsBody } from './bodies/ConditionSettingsBody' import { PhoneNumberSettingsBody } from './bodies/PhoneNumberSettingsBody' import { SetVariableSettingsBody } from './bodies/SetVariableSettingsBody' type Props = { step: Step } export const SettingsPopoverContent = ({ step }: Props) => { const ref = useRef(null) const handleMouseDown = (e: React.MouseEvent) => e.stopPropagation() const handleMouseWheel = (e: WheelEvent) => { e.stopPropagation() } useEventListener('wheel', handleMouseWheel, ref.current) return ( ) } const SettingsPopoverBodyContent = ({ step }: Props) => { const { updateStep } = useTypebot() const handleOptionsChange = ( options: | TextInputOptions | ChoiceInputOptions | SetVariableOptions | ConditionOptions ) => updateStep(step.id, { options } as Partial) switch (step.type) { case InputStepType.TEXT: { return ( ) } case InputStepType.NUMBER: { return ( ) } case InputStepType.EMAIL: { return ( ) } case InputStepType.URL: { return ( ) } case InputStepType.DATE: { return ( ) } case InputStepType.PHONE: { return ( ) } case InputStepType.CHOICE: { return ( ) } case LogicStepType.SET_VARIABLE: { return ( ) } case LogicStepType.CONDITION: { return ( ) } default: { return <> } } }