fix: botao mostrar/ocultar do log nao abria (elemento interativo dentro de summary nao propaga toggle nativo)
This commit is contained in:
@@ -86,6 +86,15 @@
|
||||
botao.textContent = aberto ? "Ocultar" : "Mostrar";
|
||||
botao.setAttribute("aria-expanded", aberto ? "true" : "false");
|
||||
};
|
||||
// Um <button> dentro de <summary> é ele mesmo um elemento interativo:
|
||||
// o navegador não propaga o clique para o toggle nativo do <details>
|
||||
// quando o clique começa em outro controle interativo. Por isso o
|
||||
// toggle precisa ser feito manualmente aqui.
|
||||
botao.addEventListener("click", function (evento) {
|
||||
evento.preventDefault();
|
||||
secao.open = !secao.open;
|
||||
atualizar();
|
||||
});
|
||||
secao.addEventListener("toggle", atualizar);
|
||||
atualizar();
|
||||
});
|
||||
|
||||
@@ -118,3 +118,17 @@ def test_pagina_log_secoes_comecam_fechadas(monkeypatch):
|
||||
assert texto.count('<details class="secao-log">') == 2
|
||||
assert "<details class=\"secao-log\" open>" not in texto
|
||||
assert "<details class='secao-log' open>" not in texto
|
||||
|
||||
|
||||
def test_pagina_log_botao_toggle_tem_handler_de_clique_proprio(monkeypatch):
|
||||
"""Regressão: um <button> dentro de <summary> não propaga o clique para
|
||||
o toggle nativo do <details> — precisa de um listener de clique
|
||||
explícito que abre/fecha a seção manualmente (ver log.html)."""
|
||||
monkeypatch.setattr(router_log.db_log, "listar", lambda limite=20: [])
|
||||
monkeypatch.setattr(router_log.n8n_client, "listar_envios", lambda limite=50: [])
|
||||
monkeypatch.setattr(router_log.n8n_client, "configurado", lambda: False)
|
||||
|
||||
resposta = client.get("/log")
|
||||
assert resposta.status_code == 200
|
||||
assert 'botao.addEventListener("click"' in resposta.text
|
||||
assert "secao.open = !secao.open" in resposta.text
|
||||
|
||||
Reference in New Issue
Block a user