From a2bcd1060708858a7efaade160d091c8385e7552 Mon Sep 17 00:00:00 2001 From: lexx Date: Wed, 13 May 2026 19:31:47 +0300 Subject: [PATCH] fixed diff --- front/js/helpers.js | 15 +++++---------- front/js/svelte/records/Edit.svelte | 1 + 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/front/js/helpers.js b/front/js/helpers.js index 77ca005..0bca772 100644 --- a/front/js/helpers.js +++ b/front/js/helpers.js @@ -88,7 +88,7 @@ export function isEqual(db, ed) { let isObject = (x) => typeof x === "object" && !Array.isArray(x) && x !== null; let isArray = (x) => x?.constructor === Array; - let isEmpty = (x) => x === null || x === undefined || x == []; + let isEmpty = (x) => x === null || x === undefined; const db_value = db ?? null; const ed_value = ed ?? null; @@ -102,11 +102,14 @@ export function isEqual(db, ed) { }, true); } if (isArray(db_value)) { + if (!isArray(ed_value) || db_value.length !== ed_value.length) { + return false; + } return db_value.reduce((c, v, i) => { if (c === false) { return false; } - return isEqual(v, ed_value?.[i]); + return isEqual(v, ed_value[i]); }, true); } @@ -119,14 +122,6 @@ export function isEqual(db, ed) { } return false; - - // const ok = Object.keys, - // tx = typeof x, - // ty = typeof y; - // return x && y && tx === "object" && tx === ty - // ? ok(x).length === ok(y).length && - // ok(x).every((key) => isEqual(x[key], y[key])) - // : x === y; } export function debounce(fn, delay) { diff --git a/front/js/svelte/records/Edit.svelte b/front/js/svelte/records/Edit.svelte index 5e487f0..3cd40b5 100644 --- a/front/js/svelte/records/Edit.svelte +++ b/front/js/svelte/records/Edit.svelte @@ -69,6 +69,7 @@ if (isCreateMode) { return false; } + return !isEqual(originalContent, { data: record.data, status: record.status,