This is an automated email from the ASF dual-hosted git repository.

shuai pushed a commit to branch feat/1.3.6/ui
in repository https://gitbox.apache.org/repos/asf/incubator-answer.git


The following commit(s) were added to refs/heads/feat/1.3.6/ui by this push:
     new cdde7648 fix: optimize diff style
cdde7648 is described below

commit cdde7648aff804d30558e34edd805fc7358a7529
Author: shuai <[email protected]>
AuthorDate: Fri Jul 12 14:07:26 2024 +0800

    fix: optimize diff style
---
 ui/src/utils/common.ts | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/ui/src/utils/common.ts b/ui/src/utils/common.ts
index 0644eba2..d9d3bee5 100644
--- a/ui/src/utils/common.ts
+++ b/ui/src/utils/common.ts
@@ -188,6 +188,23 @@ function escapeHtml(str: string) {
   return str.replace(/[&<>"'`]/g, (tag) => tagsToReplace[tag] || tag);
 }
 
+function formatDiffPart(part: any, className: string): string {
+  if (part.value.replace(/\n/g, '').length <= 0) {
+    if (part.value.match(/\n/g)?.length > 1) {
+      const value = part.value.replace(/\n/, '');
+      return `<span class="${className}"> </span><div><span 
class="${className}">${value.replace(
+        /\n/g,
+        ' ',
+      )}</span></div>`;
+    }
+    return `<div><span class="${className}">${part.value.replace(
+      /\n/g,
+      ' ',
+    )}</span></div>`;
+  }
+  return `<span class="${className}">${part.value}</span>`;
+}
+
 function diffText(newText: string, oldText?: string): string {
   if (!newText) {
     return '';
@@ -200,22 +217,10 @@ function diffText(newText: string, oldText?: string): 
string {
   const diff = Diff.diffChars(escapeHtml(oldText), escapeHtml(newText));
   result = diff.map((part) => {
     if (part.added) {
-      if (part.value.replace(/\n/g, '').length <= 0) {
-        return `<span class="review-text-add d-block">${part.value.replace(
-          /\n/g,
-          '↵\n',
-        )}</span>`;
-      }
-      return `<span class="review-text-add">${part.value}</span>`;
+      return formatDiffPart(part, 'review-text-add');
     }
     if (part.removed) {
-      if (part.value.replace(/\n/g, '').length <= 0) {
-        return `<span class="review-text-delete text-decoration-none 
d-block">${part.value.replace(
-          /\n/g,
-          '↵\n',
-        )}</span>`;
-      }
-      return `<span class="review-text-delete">${part.value}</span>`;
+      return formatDiffPart(part, 'review-text-remove text-decoration-none');
     }
 
     return part.value;

Reply via email to