v2.2 - Small improvement Interface change
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
/* ALFRED_REPONSE_CLOSE_V1 — Boutons visibles dans la scène, sans modifier Hermes. */
|
||||
(() => {
|
||||
'use strict';
|
||||
const stage = document.getElementById('stage');
|
||||
const main = document.getElementById('alfredMainV1');
|
||||
const returnButton = document.getElementById('avBack');
|
||||
if (!stage || !main || !returnButton) {
|
||||
console.warn('[Dona] Fermeture réponse : éléments Glass V2 manquants.');
|
||||
return;
|
||||
}
|
||||
if (stage.dataset.alfredReplyCloseV1 === 'ready') return;
|
||||
stage.dataset.alfredReplyCloseV1 = 'ready';
|
||||
|
||||
// La V1 crée le bouton « Retour à l’accueil » DANS #alfredMainV1 (z-index 1),
|
||||
// alors que la scène #stage est un frère au-dessus (z-index 8).
|
||||
// On déplace le bouton D'ORIGINE : son écouteur de clic et son id restent intacts.
|
||||
const bar = document.createElement('div');
|
||||
bar.className = 'av-reponse-actions';
|
||||
bar.setAttribute('role', 'group');
|
||||
bar.setAttribute('aria-label', 'Navigation dans la réponse');
|
||||
|
||||
const closeButton = document.createElement('button');
|
||||
closeButton.type = 'button';
|
||||
closeButton.className = 'av-reponse-close';
|
||||
closeButton.setAttribute('aria-label', 'Fermer la réponse et revenir à l’accueil');
|
||||
closeButton.title = 'Fermer la réponse';
|
||||
closeButton.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M5 5l14 14M19 5 5 19"/></svg>';
|
||||
|
||||
returnButton.classList.add('av-reponse-home');
|
||||
returnButton.removeAttribute('style');
|
||||
returnButton.title = 'Fermer cette réponse et revenir à l’accueil';
|
||||
bar.append(returnButton, closeButton);
|
||||
stage.insertBefore(bar, stage.firstChild);
|
||||
|
||||
const goHome = () => {
|
||||
// Utilise le gestionnaire déjà attaché à #avBack par Glass V1 :
|
||||
// focusScene(false) + éventuel AlfredViews.goHome().
|
||||
returnButton.click();
|
||||
};
|
||||
closeButton.addEventListener('click', goHome);
|
||||
|
||||
document.addEventListener('keydown', event => {
|
||||
if (event.key !== 'Escape' || event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return;
|
||||
// Les boîtes de dialogue (caméra, ComfyUI, etc.) gardent leur propre Escape.
|
||||
if (document.querySelector('dialog[open], [role="dialog"][aria-modal="true"]')) return;
|
||||
if (main.classList.contains('is-focused')) {
|
||||
event.preventDefault();
|
||||
goHome();
|
||||
}
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user