Fix popup input going off on click

This commit is contained in:
Cohee
2024-06-23 23:09:22 +03:00
parent 59e1f9cca1
commit e0a404e099
2 changed files with 6 additions and 5 deletions

View File

@@ -4854,7 +4854,7 @@
<div class="popup-content"> <div class="popup-content">
<h3 class="popup-header">text</h3> <h3 class="popup-header">text</h3>
</div> </div>
<textarea class="popup-input text_pole result-control" rows="1" data-result="1"></textarea> <textarea class="popup-input text_pole result-control" rows="1" data-result="1" data-result-event="submit"></textarea>
<div class="popup-controls"> <div class="popup-controls">
<div class="popup-button-ok menu_button result-control" data-result="1" data-i18n="Delete">Delete</div> <div class="popup-button-ok menu_button result-control" data-result="1" data-i18n="Delete">Delete</div>
<div class="popup-button-cancel menu_button result-control" data-result="0" data-i18n="Cancel">Cancel</div> <div class="popup-button-cancel menu_button result-control" data-result="0" data-i18n="Cancel">Cancel</div>

View File

@@ -69,7 +69,7 @@ const showPopupHelper = {
const value = await popup.show(); const value = await popup.show();
return value ? String(value) : null; return value ? String(value) : null;
}, },
} };
export class Popup { export class Popup {
/** @type {POPUP_TYPE} */ type; /** @type {POPUP_TYPE} */ type;
@@ -188,6 +188,7 @@ export class Popup {
case POPUP_TYPE.DISPLAY: { case POPUP_TYPE.DISPLAY: {
this.controls.style.display = 'none'; this.controls.style.display = 'none';
this.closeButton.style.display = 'block'; this.closeButton.style.display = 'block';
break;
} }
default: { default: {
console.warn('Unknown popup type.', type); console.warn('Unknown popup type.', type);
@@ -216,7 +217,7 @@ export class Popup {
this.dlg.addEventListener('focusin', (evt) => { if (evt.target instanceof HTMLElement && evt.target != this.dlg) this.lastFocus = evt.target; }); this.dlg.addEventListener('focusin', (evt) => { if (evt.target instanceof HTMLElement && evt.target != this.dlg) this.lastFocus = evt.target; });
// Bind event listeners for all result controls to their defined event type // Bind event listeners for all result controls to their defined event type
this.dlg.querySelectorAll(`[data-result]`).forEach(resultControl => { this.dlg.querySelectorAll('[data-result]').forEach(resultControl => {
if (!(resultControl instanceof HTMLElement)) return; if (!(resultControl instanceof HTMLElement)) return;
const result = Number(resultControl.dataset.result); const result = Number(resultControl.dataset.result);
if (isNaN(result)) throw new Error('Invalid result control. Result must be a number. ' + resultControl.dataset.result); if (isNaN(result)) throw new Error('Invalid result control. Result must be a number. ' + resultControl.dataset.result);
@@ -284,7 +285,7 @@ export class Popup {
runAfterAnimation(this.dlg, () => { runAfterAnimation(this.dlg, () => {
this.dlg.removeAttribute('opening'); this.dlg.removeAttribute('opening');
}) });
this.promise = new Promise((resolve) => { this.promise = new Promise((resolve) => {
this.resolver = resolve; this.resolver = resolve;
@@ -431,7 +432,7 @@ export class Popup {
getTopmostModalLayer() { getTopmostModalLayer() {
return getTopmostModalLayer(); return getTopmostModalLayer();
}, },
} };
} }
class PopupUtils { class PopupUtils {