Add mergeTextWithHistory function
This commit is contained in:
parent
c0333c1146
commit
779579d38f
18 changed files with 285 additions and 100 deletions
|
|
@ -1,10 +1,9 @@
|
|||
import init, { mergeText } from "./reconcile.js";
|
||||
import init, { mergeText, mergeTextWithHistory } from "./reconcile.js";
|
||||
|
||||
const originalTextArea = document.getElementById("original");
|
||||
const leftTextArea = document.getElementById("left");
|
||||
const rightTextArea = document.getElementById("right");
|
||||
const mergedTextArea = document.getElementById("merged");
|
||||
const mergeButton = document.getElementById("merge-button");
|
||||
|
||||
const sampleTexts = [
|
||||
"The quick brown fox jumps over the lazy dog.",
|
||||
|
|
@ -17,16 +16,35 @@ const sampleTexts = [
|
|||
async function run() {
|
||||
await init();
|
||||
|
||||
mergeButton.addEventListener("click", () => {
|
||||
const original = originalTextArea.value;
|
||||
const left = leftTextArea.value;
|
||||
const right = rightTextArea.value;
|
||||
|
||||
const result = mergeText(original, left, right);
|
||||
mergedTextArea.value = result;
|
||||
});
|
||||
originalTextArea.addEventListener("input", updateMergedText);
|
||||
leftTextArea.addEventListener("input", updateMergedText);
|
||||
rightTextArea.addEventListener("input", updateMergedText);
|
||||
|
||||
loadSample();
|
||||
updateMergedText();
|
||||
|
||||
// Put cursor at the end of the text in leftTextArea
|
||||
leftTextArea.focus();
|
||||
leftTextArea.selectionStart = leftTextArea.value.length;
|
||||
leftTextArea.selectionEnd = leftTextArea.value.length;
|
||||
}
|
||||
|
||||
function updateMergedText() {
|
||||
const original = originalTextArea.value;
|
||||
const left = leftTextArea.value;
|
||||
const right = rightTextArea.value;
|
||||
|
||||
const results = mergeTextWithHistory(original, left, right);
|
||||
|
||||
mergedTextArea.innerHTML = "";
|
||||
|
||||
for (const result of results) {
|
||||
const span = document.createElement("span");
|
||||
span.className = result.history();
|
||||
span.textContent = result.text();
|
||||
mergedTextArea.appendChild(span);
|
||||
result.free();
|
||||
}
|
||||
}
|
||||
|
||||
function loadSample() {
|
||||
|
|
@ -35,7 +53,6 @@ function loadSample() {
|
|||
originalTextArea.value = text;
|
||||
leftTextArea.value = text;
|
||||
rightTextArea.value = text;
|
||||
mergedTextArea.value = "";
|
||||
}
|
||||
|
||||
run();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue