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
|
rodape_html: editorRodape
|
||||||
}
|
}
|
||||||
const editorRef = editorMap[cursorField.value]
|
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)
|
editorRef.value.insertHTML(tag)
|
||||||
} else {
|
} else {
|
||||||
form.value[cursorField.value] = (form.value[cursorField.value] || '') + tag
|
form.value[cursorField.value] = (form.value[cursorField.value] || '') + tag
|
||||||
@@ -82,9 +91,6 @@ function insertVariable(varKey) {
|
|||||||
if (!form.value.variaveis.includes(varKey)) {
|
if (!form.value.variaveis.includes(varKey)) {
|
||||||
form.value.variaveis = [...form.value.variaveis, 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 ────────────────────────────────────────────────────
|
// ── Save ────────────────────────────────────────────────────
|
||||||
|
|||||||
Reference in New Issue
Block a user