import { useState } from 'react';

export type FormSelectOnChange = (
  event: React.ChangeEvent<HTMLSelectElement>
) => void;

export interface FormSelect {
  onChange: FormSelectOnChange;
  setValue: (val: boolean) => void;
  value: boolean;
}

/**
 * @name useFormSelect
 * @description A convenience hook for working with text inputs of type checkbox
 */
export const useFormSelect = (values: any[]): FormSelect => {
  // Setup
  const initialValue = values[0];

  // Hooks
  const [value, setValue] = useState(initialValue);

  // Handlers
  const onChange = (event: React.ChangeEvent<HTMLSelectElement>) => {
    setValue(event.target.value);
  };

  return { onChange, setValue, value };
};
