import { navigator } from "@hotwired/turbo" const { adapter } = navigator.delegate export function showProgressBar() { adapter.progressBar.setValue(0) adapter.progressBar.show() } export function hideProgressBar() { adapter.progressBar.setValue(1) adapter.progressBar.hide() } export function setDisableWithText(element) { if (element instanceof HTMLButtonElement) { element.olderInnerHTML = element.innerHTML element.innerHTML = element.dataset.disableWith } else if (element instanceof HTMLInputElement) { element.olderValue = element.value element.value = element.dataset.disableWith } } export function undoDisableWithText(element) { if (element instanceof HTMLButtonElement) { element.innerHTML = element.olderInnerHTML } else if (element instanceof HTMLInputElement) { element.value = element.olderValue } } export function enableSubmits(submits) { submits.forEach(element => { if (element.dataset.disableWith) { undoDisableWithText(element) } element.disabled = false }) } export function disableSubmits(submits) { submits.forEach(element => { if (element.dataset.disableWith) { setDisableWithText(element) } element.disabled = true }) } export function toggleSubmitDisabled(form, toggle) { const submits = [...form.querySelectorAll("button[type=submit], input[type=submit]")] if (toggle) { disableSubmits(submits) } else { enableSubmits(submits) } }