import { useState } from 'react';

export const useFormInput = (initialValue = '') => {
  const [value, setValue] = useState(initialValue);

  const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {
    const tempValue = await e.currentTarget.value;
    setValue(tempValue);
  };

  return {
    value,
    reset: (newValue: string) => setValue(newValue),
    onIonChange: handleChange,
    onKeyUp: handleChange,
  };
};

export const validateForm = (fields: { required: boolean; id: string; input: { state: { value: string } } }[]) => {
  let errors: { id: string; message: string }[] = [];

  fields.forEach((field: { required: boolean; id: string; input: { state: { value: string } } }) => {
    if (field.required) {
      const fieldValue = field.input.state.value;

      if (fieldValue === '') {
        const error = {
          id: field.id,
          message: `Please check your ${field.id}`,
        };

        errors.push(error);
      }
    }
  });

  return errors;
};
