/**
* 인증 화면 제출 버튼 상태 관리
*/
const UaAuthForm = (() => {
/**
* 버튼 로딩 상태 전환
* @param {HTMLButtonElement} button
* @param {boolean} loading
* @param {string} [loadingText='처리 중...']
*/
function setLoading(button, loading, loadingText = '처리 중...') {
if (!button) return;
if (!button.dataset.idleLabel) {
button.dataset.idleLabel = button.textContent.trim();
}
button.disabled = loading;
button.setAttribute('aria-busy', String(loading));
if (loading) {
button.classList.add('cursor-wait', 'opacity-70');
button.innerHTML = `
${loadingText}
`;
return;
}
button.classList.remove('cursor-wait', 'opacity-70');
button.textContent = button.dataset.idleLabel;
}
/**
* 캐시된 구 API 클라이언트에 메서드가 없을 때 인증 API 직접 요청
* @param {string} path
* @param {object} body
* @returns {Promise