+
+
+
+
No matches found
+
No projects match "{{ searchQuery }}"
+
+
-
-
-
-
- {{ project.name.charAt(0).toUpperCase() }}
+
+
+
+
+
+
+
+
+
+ {{ project.name.charAt(0).toUpperCase() }}
+
+
+
+
+
+
+
+
{{ project.name }}
+
+ {{ project.data?.layers?.length || 0 }} layers
+ {{ project.data?.columns }} columns
+ {{ getSpriteCount(project) }} sprites
+
+
+
-
-
{{ project.name }}
-
- {{ project.data?.layers?.length || 0 }} layers • {{ project.data?.columns }}x{{ project.data?.columns }} grid
-
-
-
-
-
- {{ formatDate(project.updated) }}
-
-
- Open
-
+
+ Updated {{ formatDate(project.updated) }}
+ Open Project
+
-
-
-
-
+
-
- Showing {{ projects.length }} project{{ projects.length !== 1 ? 's' : '' }}
-
+
Showing {{ filteredProjects.length }} of {{ projects.length }} project{{ projects.length !== 1 ? 's' : '' }}
-
- Load Example
-
+ Load Example
Close
@@ -98,7 +126,7 @@
diff --git a/src/composables/useProjectManager.ts b/src/composables/useProjectManager.ts
index dbb1151..f2a6721 100644
--- a/src/composables/useProjectManager.ts
+++ b/src/composables/useProjectManager.ts
@@ -99,6 +99,22 @@ export const useProjectManager = () => {
isEditorActive.value = false;
};
+ const closeProject = () => {
+ // Reset Layers
+ const newLayer = createEmptyLayer('Base');
+ layers.value = [newLayer];
+ activeLayerId.value = newLayer.id;
+
+ // Reset columns
+ columns.value = 4;
+
+ // Reset Project Store
+ projectStore.currentProject = null;
+
+ // Close Editor
+ isEditorActive.value = false;
+ };
+
return {
isEditorActive,
createProject,
@@ -106,6 +122,7 @@ export const useProjectManager = () => {
saveProject,
saveAsProject,
closeEditor,
+ closeProject,
loadProjectData,
};
};
diff --git a/src/stores/useProjectStore.ts b/src/stores/useProjectStore.ts
index 1155e9e..bcfa13f 100644
--- a/src/stores/useProjectStore.ts
+++ b/src/stores/useProjectStore.ts
@@ -70,11 +70,11 @@ export const useProjectStore = defineStore('project', () => {
name,
data,
});
- currentProject.value = {
- ...currentProject.value!,
+ currentProject.value = {
+ ...currentProject.value!,
name: record.name,
- data: record.data,
- updated: record.updated
+ data: record.data,
+ updated: record.updated,
};
await fetchProjects();
} catch (error) {
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 0dd842d..c361fbf 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -128,7 +128,12 @@
Editor Tools
-
Add
+
+
+
+
+ Add
+
@@ -317,14 +322,14 @@
-
+
PNG
JSON
GIF
ZIP
-
Share Project
+
Share project
@@ -462,7 +467,7 @@
useHomeViewSEO();
- const { isEditorActive } = useProjectManager();
+ const { isEditorActive, closeProject } = useProjectManager();
const settingsStore = useSettingsStore();
const { layers, visibleLayers, activeLayer, activeLayerId, columns, updateSpritePosition, updateSpriteInLayer, updateSpriteCell, removeSprite, removeSprites, replaceSprite, addSprite, processImageFiles, alignSprites, addLayer, removeLayer, moveLayer, rotateSprite, flipSprite, copySpriteToFrame } =
useLayers();