import { ApplicationController } from './application_controller';

export class EmailFranceConnectController extends ApplicationController {
  static targets = ['useFranceConnectEmail', 'emailField'];

  emailFieldTarget!: HTMLElement;
  useFranceConnectEmailTargets!: HTMLInputElement[];

  connect() {
    this.triggerEmailField();
  }

  triggerEmailField() {
    const checkedTarget = this.useFranceConnectEmailTargets.find(
      (target) => target.checked
    );

    const inputElement = this.emailFieldTarget.querySelector(
      'input[type="email"]'
    ) as HTMLInputElement;

    if (checkedTarget && checkedTarget.value === 'false') {
      this.emailFieldTarget.classList.remove('hidden');
      this.emailFieldTarget.setAttribute('aria-hidden', 'false');
      inputElement.setAttribute('required', '');
    } else {
      this.emailFieldTarget.classList.add('hidden');
      this.emailFieldTarget.setAttribute('aria-hidden', 'true');
      inputElement.removeAttribute('required');
      inputElement.value = '';
    }
  }
}