diff --git a/src/App.vue b/src/App.vue
index e83b8a7..593e77b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -85,5 +85,3 @@
}
};
-
-
diff --git a/src/components/SpriteCanvas.vue b/src/components/SpriteCanvas.vue
index 1c0ad25..b4214dc 100644
--- a/src/components/SpriteCanvas.vue
+++ b/src/components/SpriteCanvas.vue
@@ -33,32 +33,7 @@
-
-
-
Copy sprite to frame
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -206,6 +181,7 @@
import { useFileDrop } from '@/composables/useFileDrop';
import { useGridMetrics } from '@/composables/useGridMetrics';
import { useBackgroundStyles } from '@/composables/useBackgroundStyles';
+ import CopyToFrameModal from './utilities/CopyToFrameModal.vue';
import type { Layer } from '@/types/sprites';
@@ -302,15 +278,9 @@
// Copy to frame modal state
const showCopyToFrameModal = ref(false);
- const copyTargetFrame = ref(0);
const copyTargetLayerId = ref(props.activeLayerId);
const copySpriteId = ref(null);
- const maxFrameCount = computed(() => {
- const maxLen = Math.max(1, ...props.layers.map(l => l.sprites.length));
- return maxLen + 1; // Allow copying to one frame beyond current max
- });
-
// Clear selection when toggling multi-select mode
watch(
() => props.isMultiSelectMode,
@@ -556,7 +526,6 @@
if (contextMenuSpriteId.value) {
copySpriteId.value = contextMenuSpriteId.value;
copyTargetLayerId.value = props.activeLayerId;
- copyTargetFrame.value = 0;
showCopyToFrameModal.value = true;
showContextMenu.value = false;
}
@@ -567,9 +536,9 @@
copySpriteId.value = null;
};
- const confirmCopyToFrame = () => {
+ const confirmCopyToFrame = (targetLayerId: string, targetFrameIndex: number) => {
if (copySpriteId.value) {
- emit('copySpriteToFrame', copySpriteId.value, copyTargetLayerId.value, copyTargetFrame.value);
+ emit('copySpriteToFrame', copySpriteId.value, targetLayerId, targetFrameIndex);
closeCopyToFrameModal();
}
};
diff --git a/src/components/SpritePreview.vue b/src/components/SpritePreview.vue
index 87157c8..eba2ecf 100644
--- a/src/components/SpritePreview.vue
+++ b/src/components/SpritePreview.vue
@@ -24,32 +24,7 @@
-
-
-
Copy Sprite to Frame
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -308,6 +283,7 @@
import { useAnimationFrames } from '@/composables/useAnimationFrames';
import { useGridMetrics } from '@/composables/useGridMetrics';
import { useBackgroundStyles } from '@/composables/useBackgroundStyles';
+ import CopyToFrameModal from './utilities/CopyToFrameModal.vue';
const props = defineProps<{
layers: Layer[];
@@ -373,14 +349,8 @@
// Copy to frame modal state
const showCopyToFrameModal = ref(false);
- const copyTargetFrame = ref(0);
const copyTargetLayerId = ref(props.activeLayerId);
- const maxFrameCount = computed(() => {
- const maxLen = Math.max(1, ...props.layers.map(l => l.sprites.length));
- return maxLen + 1; // Allow copying to one frame beyond current max
- });
-
// Drag and drop for new sprites
const onDragOver = () => {
isDragOver.value = true;
@@ -713,7 +683,6 @@
const openCopyToFrameModal = () => {
if (contextMenuSpriteId.value) {
copyTargetLayerId.value = contextMenuLayerId.value || props.activeLayerId;
- copyTargetFrame.value = 0;
showCopyToFrameModal.value = true;
showContextMenu.value = false;
}
@@ -723,9 +692,9 @@
showCopyToFrameModal.value = false;
};
- const confirmCopyToFrame = () => {
+ const confirmCopyToFrame = (targetLayerId: string, targetFrameIndex: number) => {
if (contextMenuSpriteId.value) {
- emit('copySpriteToFrame', contextMenuSpriteId.value, copyTargetLayerId.value, copyTargetFrame.value);
+ emit('copySpriteToFrame', contextMenuSpriteId.value, targetLayerId, targetFrameIndex);
closeCopyToFrameModal();
contextMenuSpriteId.value = null;
}
diff --git a/src/components/auth/AuthModal.vue b/src/components/auth/AuthModal.vue
index b5566b0..040add4 100644
--- a/src/components/auth/AuthModal.vue
+++ b/src/components/auth/AuthModal.vue
@@ -1,58 +1,52 @@
-
-
-
-