@sequent-org/moodboard 1.2.48 → 1.2.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/core/SaveManager.js +11 -3
package/package.json
CHANGED
package/src/core/SaveManager.js
CHANGED
|
@@ -44,9 +44,10 @@ export class SaveManager {
|
|
|
44
44
|
setupEventListeners() {
|
|
45
45
|
if (!this.options.autoSave) return;
|
|
46
46
|
|
|
47
|
-
// Отслеживаем изменения в
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// Отслеживаем изменения сетки: не передаём частичные данные в сохранение,
|
|
48
|
+
// чтобы собрать полный snapshot через getBoardData()
|
|
49
|
+
this.eventBus.on(Events.Grid.BoardDataChanged, () => {
|
|
50
|
+
this.markAsChanged();
|
|
50
51
|
});
|
|
51
52
|
|
|
52
53
|
// Отслеживаем создание объектов
|
|
@@ -131,6 +132,13 @@ export class SaveManager {
|
|
|
131
132
|
try {
|
|
132
133
|
// Получаем данные для сохранения
|
|
133
134
|
const saveData = data || await this.getBoardData();
|
|
135
|
+
|
|
136
|
+
// Защита: если данные не получены (например, при уничтожении/отписке обработчиков) — выходим без ошибки
|
|
137
|
+
if (!saveData || typeof saveData !== 'object') {
|
|
138
|
+
console.warn('SaveManager: нет данных для сохранения (saveData is null) — пропускаем сохранение');
|
|
139
|
+
this.updateSaveStatus('idle');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
134
142
|
|
|
135
143
|
// Проверяем, изменились ли данные с последнего сохранения
|
|
136
144
|
if (this.lastSavedData && JSON.stringify(saveData) === JSON.stringify(this.lastSavedData)) {
|