From 090e3871af9906f3eb5246751a8c64ba99557f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=E1=BA=A7n=20=C4=90=C3=ACnh=20Nam?= Date: Mon, 10 Aug 2026 19:12:23 +0700 Subject: [PATCH] Fix: doi FORMAT thuan (boi den -> B/I, chu giu nguyen) bi commit coi la 'khong thay doi' va nuot mat op - dieu kien changed tinh ca override Co-Authored-By: Claude Fable 5 --- app/src/main.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main.js b/app/src/main.js index e32d4f3..0d8a042 100644 --- a/app/src/main.js +++ b/app/src/main.js @@ -3216,7 +3216,9 @@ function startBlockTextEdit(o, lines, ev) { const rich = readRich(); ce.remove(); ov.querySelectorAll(".edit-box").forEach((b) => { b.style.display = ""; }); - const changed = save && text.trim() && text !== original; + // "Có thay đổi" gồm cả đổi FORMAT thuần (bôi đen → B/I, chữ giữ nguyên). + const hasOverride = rich.some((line) => line.some((g) => g.bold != null || g.italic != null)); + const changed = save && text.trim() && (text !== original || hasOverride); // LUÔN trả lại ảnh trang gốc ngay (đang hiện bản ẩn run sửa): trong lúc // engine áp thay đổi (file phức tạp mất vài giây) người dùng thấy chữ CŨ // thay vì khoảng trống — hết cảm giác "chữ biến mất". @@ -3230,7 +3232,6 @@ function startBlockTextEdit(o, lines, ev) { rich.flatMap((line) => line.map((g) => styleKeyOf(state.editObjects.find((x) => x.index === g.style) || {}))) ).size; // Có override B/I từng đoạn → bắt buộc đi đường rich dù khối 1 style. - const hasOverride = rich.some((line) => line.some((g) => g.bold != null || g.italic != null)); stageEditOp({ op: "reflowText", indices: allRuns.map((r) => r.index),