import { ApplicationController } from './application_controller';
import { toggle } from '@utils';
const AUTOSUBMIT_DEBOUNCE_DELAY = 5000;

export class AutosubmitController extends ApplicationController {
  static targets = ['form', 'spinner'];

  declare readonly formTarget: HTMLFormElement;
  declare readonly spinnerTarget: HTMLElement;

  submit() {
    this.formTarget.requestSubmit();
  }

  debouncedSubmit() {
    this.debounce(this.submit, AUTOSUBMIT_DEBOUNCE_DELAY);
  }

  connect() {
    this.onGlobal('turbo:submit-start', () => {
      toggle(this.spinnerTarget);
    });
  }
}