@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sequent-org/moodboard",
3
- "version": "1.2.48",
3
+ "version": "1.2.50",
4
4
  "type": "module",
5
5
  "description": "Interactive moodboard",
6
6
  "main": "./src/index.js",
@@ -44,9 +44,10 @@ export class SaveManager {
44
44
  setupEventListeners() {
45
45
  if (!this.options.autoSave) return;
46
46
 
47
- // Отслеживаем изменения в данных
48
- this.eventBus.on(Events.Grid.BoardDataChanged, (data) => {
49
- this.scheduleAutoSave(data);
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)) {