openreplay/frontend/app/hooks/useInputState.ts

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 ];
}