import React, { ReactElement } from 'react'
import styles from './InputElement.module.css'
import { InputProps } from '.'
import FilesInput from '../FormFields/FilesInput'
import CustomProvider from '../FormFields/Provider'
import BoxSelection, { BoxSelectionOption } from '../FormFields/BoxSelection'
import Datatoken from '../FormFields/Datatoken'
import classNames from 'classnames/bind'
import AssetSelection, {
AssetSelectionAsset
} from '../FormFields/AssetSelection'
import Nft from '../FormFields/Nft'
import InputRadio from './InputRadio'
import ContainerInput from '@shared/FormFields/ContainerInput'
const cx = classNames.bind(styles)
const DefaultInput = ({
size,
className,
// We filter out all props which are not allowed
// to be passed to HTML input so these stay unused.
/* eslint-disable @typescript-eslint/no-unused-vars */
prefix,
postfix,
additionalComponent,
/* eslint-enable @typescript-eslint/no-unused-vars */
...props
}: InputProps) => (
)
export default function InputElement({
options,
sortOptions,
prefix,
postfix,
size,
field,
multiple,
// We filter out all props which are not allowed
// to be passed to HTML input so these stay unused.
/* eslint-disable @typescript-eslint/no-unused-vars */
label,
help,
prominentHelp,
form,
additionalComponent,
disclaimer,
disclaimerValues,
/* eslint-enable @typescript-eslint/no-unused-vars */
...props
}: InputProps): ReactElement {
const styleClasses = cx({ select: true, [size]: size })
switch (props.type) {
case 'select': {
const sortedOptions =
!sortOptions && sortOptions === false
? options
: (options as string[]).sort((a: string, b: string) =>
a.localeCompare(b)
)
return (
)
}
case 'textarea':
return
case 'radio':
case 'checkbox':
return