diff --git a/src/features/documents/components/DocumentTemplateEditor.vue b/src/features/documents/components/DocumentTemplateEditor.vue index 589ec15..1678a01 100644 --- a/src/features/documents/components/DocumentTemplateEditor.vue +++ b/src/features/documents/components/DocumentTemplateEditor.vue @@ -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 ────────────────────────────────────────────────────