import type { Project } from "@pien-studio/types"; export function hasProjectChanged(left: Project, right: Project): boolean { if (left.id !== right.id) return true; if (left.title !== right.title) return true; if (left.createdAt !== right.createdAt) return true; if (left.updatedAt !== right.updatedAt) return true; if (left.aspectRatio !== right.aspectRatio) return true; if (left.canvas.width !== right.canvas.width || left.canvas.height !== right.canvas.height || left.canvas.unit !== right.canvas.unit) { return true; } if (left.layers.length !== right.layers.length) return true; for (let index = 0; index < left.layers.length; index += 1) { const a = left.layers[index]; const b = right.layers[index]; if (!a || !b) return true; if ( a.id !== b.id || a.type !== b.type || a.name !== b.name || a.assetId !== b.assetId || a.sourceUri !== b.sourceUri || a.x !== b.x || a.y !== b.y || a.width !== b.width || a.height !== b.height || a.scale !== b.scale || a.rotation !== b.rotation || a.opacity !== b.opacity || a.visible !== b.visible ) { return true; } if (JSON.stringify(a.effects) !== JSON.stringify(b.effects)) return true; } return false; }