templates/editor: fix trava do drawer ao inserir variavel no mobile
Bug: ao clicar numa variavel no drawer mobile, a variavel era inserida mas o drawer travava/bugava. Causa: editor.insertHTML(tag) do Jodit tenta resolver selection/cursor — no mobile, foco esta nos botoes do drawer, nao no editor, entao Jodit fica em loop tentando encontrar posicao. Fix: - Detecta isMobile e usa append direto via v-model (form.value[field] += tag) em vez de editor.insertHTML - Fecha o drawer ANTES da insercao pra Jodit reconciliar com v-model na proxima tick - No desktop, comportamento original (insertHTML mantem posicao do cursor) permanece Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -72,7 +72,16 @@ function insertVariable(varKey) {
|
||||
rodape_html: editorRodape
|
||||
}
|
||||
const editorRef = editorMap[cursorField.value]
|
||||
if (editorRef?.value?.insertHTML) {
|
||||
|
||||
// No mobile: drawer está aberto, foco está nos botões do drawer.
|
||||
// Tentar editor.insertHTML enquanto o cursor está fora do Jodit faz
|
||||
// ele travar tentando resolver selection. Usamos o fallback (append
|
||||
// direto no form via v-model) e fechamos o drawer ANTES — Jodit
|
||||
// sincroniza com v-model na próxima tick.
|
||||
if (isMobile.value) {
|
||||
drawerOpen.value = false;
|
||||
form.value[cursorField.value] = (form.value[cursorField.value] || '') + tag
|
||||
} else if (editorRef?.value?.insertHTML) {
|
||||
editorRef.value.insertHTML(tag)
|
||||
} else {
|
||||
form.value[cursorField.value] = (form.value[cursorField.value] || '') + tag
|
||||
@@ -82,9 +91,6 @@ function insertVariable(varKey) {
|
||||
if (!form.value.variaveis.includes(varKey)) {
|
||||
form.value.variaveis = [...form.value.variaveis, varKey]
|
||||
}
|
||||
|
||||
// No mobile, fecha o drawer pra liberar a tela do editor
|
||||
if (isMobile.value) drawerOpen.value = false;
|
||||
}
|
||||
|
||||
// ── Save ────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user