/* eslint-disable react/jsx-props-no-spreading */
import React from 'react'
import classNames from 'classnames'
/* eslint-disable import/prefer-default-export */
export interface SwitchProps extends React.InputHTMLAttributes<HTMLInputElement> {
  label?: string
  isCol?: boolean
  errorMessage?: string
}

export const Switch = (props: SwitchProps) => {
  const { label, errorMessage, id, isCol, className, ...rest } = props

  return (
    <div className="flex gap-2 flex-col">
      <div className={classNames('flex items-center gap-2', isCol ? 'flex-col' : 'flex-row')}>
        {label && (
          <label htmlFor={id} className="label capitalize">
            {label}
          </label>
        )}

        <input
          type="checkbox"
          className={classNames('toggle', errorMessage ? 'toggle-secondary' : 'toggle-primary', className)}
          {...rest}
        />
      </div>

      {errorMessage && (
        <label htmlFor={id} className="text-red-500">
          {errorMessage}
        </label>
      )}
    </div>
  )
}
