import React, { useState, useCallback } from 'react'; type SupportedElements = HTMLInputElement | HTMLSelectElement; export default function(state: string = ""): [string, React.ChangeEventHandler, (string) => void] { const [ value, setValue ] = useState(state); const onChange = useCallback( ({ target: { value } }: React.ChangeEvent) => setValue(value), []); return [ value, onChange, setValue ]; }