import React, { useCallback } from 'react'; import TagInputConnector from './TagInputConnector'; interface MovieTagInputProps { name: string; value: number | number[]; onChange: ({ name, value, }: { name: string; value: number | number[]; }) => void; } export default function MovieTagInput(props: MovieTagInputProps) { const { value, onChange, ...otherProps } = props; const isArray = Array.isArray(value); const handleChange = useCallback( ({ name, value: newValue }: { name: string; value: number[] }) => { if (isArray) { onChange({ name, value: newValue }); } else { onChange({ name, value: newValue.length ? newValue[newValue.length - 1] : 0, }); } }, [isArray, onChange] ); let finalValue: number[] = []; if (isArray) { finalValue = value; } else if (value === 0) { finalValue = []; } else { finalValue = [value]; } return ( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore 2786 'TagInputConnector' isn't typed yet ); }