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;