import React, { ReactElement, useEffect, useState } from 'react' import { Field, useField } from 'formik' import Input, { InputProps } from '../..' import { FormConsumerParameter } from '@components/Publish/_types' import Tabs from '@shared/atoms/Tabs' import FormActions from './FormActions' import DefaultInput from './DefaultInput' import OptionsInput from './OptionsInput' import styles from './index.module.css' import TypeInput from './TypeInput' export const defaultConsumerParam: FormConsumerParameter = { name: '', label: '', description: '', type: 'text', options: undefined, default: '', required: 'optional' } export const paramTypes: FormConsumerParameter['type'][] = [ 'number', 'text', 'boolean', 'select' ] export function ConsumerParameters(props: InputProps): ReactElement { const [field, meta, helpers] = useField(props.name) const [tabIndex, setTabIndex] = useState(0) useEffect(() => { if (field.value.length === 0) helpers.setValue([{ ...defaultConsumerParam }]) }, []) return (
{ return { title: param?.name?.length > 15 ? `${param?.name?.slice(0, 15)}...` : param?.name || 'New parameter', content: (
{props.fields?.map((subField: InputProps) => { if (subField.name === 'options') { return field.value[index]?.type === 'select' ? ( ) : null } if (subField.name === 'default') { return ( ) } if (subField.name === 'type') { return ( ) } return ( ) })}
) } })} />
) }