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