import React, { useContext } from 'react';
import { TypeIcon, TypeLabel, TypeOptions, TypeSize, TypeVariant } from '../../Types';
import Address from './Inputs/Address';
import Currency from './Inputs/Currency';
import DateOfBirth from './Inputs/DateOfBirth';
import Duration from './InputDuration/InputDuration';
import Editor from './InputEditor/InputEditor';
import { FieldContext } from '../../Contexts';
import Image from './InputImage/InputImage';
import Number from './InputNumber/InputNumber';
import Password from './InputPassword/InputPassword';
import Phone from './InputPhone/InputPhone';
import Reference from './shared/Reference';
import Search from './InputSearch/InputSearch';
import Select from './InputSelect/InputSelect';
import Store from './shared/Store';
import Text from './Inputs/Text';
import Textarea from './InputTextarea/InputTextarea';
import Timezone from './InputTimezone/InputTimezone';
import Toggle from './Inputs/Toggle';
import ToggleButton from './Inputs/ToggleButton';
import Transfer from './Inputs/Transfer';
export interface FieldProperties {
id?: string;
label?: TypeLabel;
name: string;
type: string;
defer?: boolean;
secured?: boolean;
size?: TypeSize;
variant?: TypeVariant;
options?: TypeOptions;
icon?: TypeIcon;
description?: string;
}
const Input = (props: FieldProperties): JSX.Element | null => {
const { type } = props;
switch (type) {
case 'text':
return