게시글 수정 원복

This commit is contained in:
nevermoregb 2025-03-31 20:24:03 +09:00
parent 9e2b3a072d
commit e9f3a6c8a6

View File

@ -141,13 +141,34 @@
}
};
function extractPlainText(delta) {
if (!delta || !Array.isArray(delta.ops)) return '';
return delta.ops
function isDeltaChanged(current, original) {
const Delta = Quill.import('delta');
const currentDelta = new Delta(current || []);
const originalDelta = new Delta(original || []);
const diff = originalDelta.diff(currentDelta);
if (!diff || diff.ops.length === 0) return false;
//
const getPlainText = delta =>
(delta.ops || [])
.filter(op => typeof op.insert === 'string')
.map(op => op.insert.trim())
.join(' ')
.trim();
.map(op => op.insert)
.join('');
const getImages = delta =>
(delta.ops || []).filter(op => typeof op.insert === 'object' && op.insert.image).map(op => op.insert.image);
const textCurrent = getPlainText(currentDelta);
const textOriginal = getPlainText(originalDelta);
const imgsCurrent = getImages(currentDelta);
const imgsOriginal = getImages(originalDelta);
const textEqual = textCurrent === textOriginal;
const imageEqual = JSON.stringify(imgsCurrent) === JSON.stringify(imgsOriginal);
return !(textEqual && imageEqual); // false
}
const isChanged = computed(() => {
@ -212,16 +233,6 @@
contentLoaded.value = true;
};
watch(
content,
val => {
if (contentLoaded.value && !originalPlainText.value) {
originalPlainText.value = extractPlainText(val);
}
},
{ immediate: true },
);
const handleUpdateEditorImg = item => {
editorUploadedImgList.value = item;
};