From 66d1cf94b4ea3de77681e979a622a8a85bb462cd Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Sat, 5 Apr 2025 22:37:37 +0200 Subject: [PATCH] Added preview modal --- src/App.vue | 29 ++- src/components/SpritePreview.vue | 298 +++++++++++++++++++++++++++++ src/components/utilities/Modal.vue | 55 ++++++ 3 files changed, 379 insertions(+), 3 deletions(-) create mode 100644 src/components/SpritePreview.vue create mode 100644 src/components/utilities/Modal.vue diff --git a/src/App.vue b/src/App.vue index bdb7e3d..af54112 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,9 +4,7 @@
-
- - +
@@ -14,9 +12,17 @@
+ +
+ +
+ + + +
@@ -24,6 +30,8 @@ import { ref } from 'vue'; import FileUploader from './components/FileUploader.vue'; import SpriteCanvas from './components/SpriteCanvas.vue'; + import Modal from './components/utilities/Modal.vue'; + import SpritePreview from './components/SpritePreview.vue'; interface Sprite { id: string; @@ -38,6 +46,7 @@ const sprites = ref([]); const columns = ref(4); + const isPreviewModalOpen = ref(false); const handleSpritesUpload = (files: File[]) => { Promise.all( @@ -114,4 +123,18 @@ link.href = canvas.toDataURL('image/png'); link.click(); }; + + // Preview modal control + const openPreviewModal = () => { + console.log('Opening preview modal'); + if (sprites.value.length === 0) { + console.log('No sprites to preview'); + return; + } + isPreviewModalOpen.value = true; + }; + + const closePreviewModal = () => { + isPreviewModalOpen.value = false; + }; diff --git a/src/components/SpritePreview.vue b/src/components/SpritePreview.vue new file mode 100644 index 0000000..983b84d --- /dev/null +++ b/src/components/SpritePreview.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/src/components/utilities/Modal.vue b/src/components/utilities/Modal.vue new file mode 100644 index 0000000..50e393b --- /dev/null +++ b/src/components/utilities/Modal.vue @@ -0,0 +1,55 @@ + + +