Commit 43a66889 authored by isstuev's avatar isstuev

type fixes

parent 3430953e
......@@ -36,7 +36,7 @@ const AddressForm: React.FC<Props> = ({ data }) => {
const onSubmit: SubmitHandler<Inputs> = data => console.log(data);
const renderAddressInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, 'address'>}) => {
return <AddressInput field={ field } isInvalid={ Boolean(errors.address) }/>
return <AddressInput<Inputs, 'address'> field={ field } isInvalid={ Boolean(errors.address) }/>
}, [ errors ]);
const renderTagInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, 'tag'>}) => {
......
......@@ -21,7 +21,14 @@ const MAX_INPUTS_NUM = 10;
export default function PublicTagFormAction({ control, index, fieldsLength, hasError, onAddFieldClick, onRemoveFieldClick }: Props) {
const renderAddressInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, `addresses.${ number }.address`>}) => {
return <AddressInput field={ field } isInvalid={ hasError } size="lg" placeholder="Smart contract / Address (0x...)"/>
return (
<AddressInput<Inputs, `addresses.${ number }.address`>
field={ field }
isInvalid={ hasError }
size="lg"
placeholder="Smart contract / Address (0x...)"
/>
)
}, [ hasError ]);
return (
......
import React from 'react'
import type { ControllerRenderProps } from 'react-hook-form';
import type { ControllerRenderProps, FieldValues, Path } from 'react-hook-form';
import {
Input,
......@@ -9,14 +9,20 @@ import {
const ADDRESS_LENGTH = 42;
type Props = {
field: ControllerRenderProps<any, 'address'>;
type Props<TInputs extends FieldValues, TInputName extends Path<TInputs>> = {
field: ControllerRenderProps<TInputs, TInputName>;
isInvalid: boolean;
size?: string;
placeholder?: string;
}
const AddressInput: React.FC<Props> = ({ field, isInvalid, size, placeholder = 'Address (0x...)' }) => {
export default function AddressInput<I extends FieldValues, N extends Path<I>>(
{
field,
isInvalid,
size,
placeholder = 'Address (0x...)',
}: Props<I, N>) {
return (
<FormControl variant="floating" id="address" isRequired>
<Input
......@@ -30,5 +36,3 @@ const AddressInput: React.FC<Props> = ({ field, isInvalid, size, placeholder = '
</FormControl>
)
}
export default AddressInput
......@@ -43,7 +43,7 @@ const AddressForm: React.FC<Props> = ({ data }) => {
const onSubmit: SubmitHandler<Inputs> = data => console.log(data);
const renderAddressInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, 'address'>}) => {
return <AddressInput field={ field } isInvalid={ Boolean(errors.address) }/>
return <AddressInput<Inputs, 'address'> field={ field } isInvalid={ Boolean(errors.address) }/>
}, [ errors ]);
const renderTagInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, 'tag'>}) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment