import { useSearchParams } from 'react-router-dom'; import { Input, InputGroup, InputLeftElement, Select, Switch } from '@chakra-ui/react'; import { isStringBoolean } from '../../../features/viewers/common/viewUtils'; import { ParamField } from './types'; interface EditFormInputProps { paramField: ParamField; } export default function ParamInput(props: EditFormInputProps) { const [searchParams] = useSearchParams(); const { paramField } = props; const { id, type, defaultValue } = paramField; if (type === 'option') { const optionFromParams = searchParams.get(id); const defaultOptionValue = optionFromParams || defaultValue; return ( ); } if (type === 'boolean') { const defaultCheckedValue = isStringBoolean(searchParams.get(id)) || defaultValue; // checked value should be 'true', so it can be captured by the form event return ; } if (type === 'number') { const { prefix, placeholder } = paramField; const defaultNumberValue = searchParams.get(id) ?? defaultValue; return ( {prefix && {prefix}} ); } const defaultStringValue = searchParams.get(id) ?? defaultValue; const { prefix, placeholder } = paramField; return ( {prefix && {prefix}} ); }