import { post } from '@rails/request.js'; import { Modal } from 'bootstrap'; import { showErrorNotification, showNotification } from 'utilities/notifications'; import I18n from 'retrospring/i18n'; export function questionboxAllHandler(event: Event): void { const button = event.target as HTMLButtonElement; button.disabled = true; document.querySelector('textarea[name=qb-all-question]').readOnly = true; post('/ajax/ask', { body: { rcpt: 'followers', question: document.querySelector('textarea[name=qb-all-question]').value, anonymousQuestion: 'false' }, contentType: 'application/json' }) .then(async response => { const data = await response.json; if (data.success) { document.querySelector('textarea[name=qb-all-question]').value = ''; const modal = Modal.getInstance(document.querySelector('#modal-ask-followers')); modal.hide(); // FIXME: also solve this using a Stimulus controller const characterCount = document.querySelector('#modal-ask-followers [data-character-count-max-value]').dataset.characterCountMaxValue; document.querySelector('#modal-ask-followers [data-character-count-target="counter"]').innerHTML = characterCount; } showNotification(data.message, data.success); }) .catch(err => { console.log(err); showErrorNotification(I18n.translate('frontend.error.message')); }) .finally(() => { button.disabled = false; document.querySelector('textarea[name=qb-all-question]').readOnly = false; }); } export function questionboxAllInputHandler(event: KeyboardEvent): void { if (event.keyCode == 13 && (event.ctrlKey || event.metaKey)) { document.querySelector(`button[name=qb-all-ask]`).click(); } } export function questionboxAllModalAutofocus(): void { document.querySelector('textarea[name=qb-all-question]').focus(); }