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