@@ -19,14 +19,18 @@
-
-
diff --git a/src/components/PreviewModal.vue b/src/components/PreviewModal.vue
index b3370b6..55b7eed 100644
--- a/src/components/PreviewModal.vue
+++ b/src/components/PreviewModal.vue
@@ -270,27 +270,27 @@
return;
}
- // Center the modal in the viewport
- const viewportWidth = window.innerWidth;
- const viewportHeight = window.innerHeight;
- position.value = {
- x: (viewportWidth - modalSize.value.width) / 2,
- y: (viewportHeight - modalSize.value.height) / 2,
- };
-
// Reset zoom but keep sprite offset if it exists
previewZoom.value = 1;
viewportOffset.value = { x: 0, y: 0 };
// Reset modal size to default
modalSize.value = { width: 800, height: 600 };
+ // Note: Modal positioning is now handled by BaseModal
// Reset to first frame
currentFrame.value = 0;
animation.value.currentFrame = 0;
+ // Initialize canvas and retry if it fails
await initializeCanvas();
+ // If canvas is still not initialized, try again after a short delay
+ if (!animCanvas.value || !store.animation.canvas) {
+ await new Promise(resolve => setTimeout(resolve, 100));
+ await initializeCanvas();
+ }
+
// Set modal open state if not already open
if (!store.isModalOpen.value) {
store.isModalOpen.value = true;
@@ -317,12 +317,19 @@
};
const updateCanvasSize = () => {
- if (animCanvas.value && store.cellSize.width && store.cellSize.height) {
+ if (!animCanvas.value) {
+ console.warn('PreviewModal: Cannot update canvas size - canvas not found');
+ return;
+ }
+
+ if (store.cellSize.width && store.cellSize.height) {
animCanvas.value.width = store.cellSize.width;
animCanvas.value.height = store.cellSize.height;
// Also update container size
updateCanvasContainerSize();
+ } else {
+ console.warn('PreviewModal: Cannot update canvas size - invalid cell dimensions');
}
};
@@ -375,6 +382,9 @@
// Modal drag and resize functionality is now handled by BaseModal
const initializeCanvas = async () => {
+ // Wait for the next tick to ensure the canvas element is rendered
+ await nextTick();
+
if (!animCanvas.value) {
console.error('PreviewModal: Animation canvas not found');
return;
@@ -599,8 +609,12 @@
}
};
- onMounted(() => {
- initializeCanvas();
+ onMounted(async () => {
+ // Initialize canvas with a slight delay to ensure DOM is ready
+ await nextTick();
+ await initializeCanvas();
+
+ // Add event listeners
window.addEventListener('keydown', handleKeyDown);
});