From 7152482687fd2bf4781aa0ea82427177d131f398 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 26 Nov 2025 15:59:34 +0100 Subject: [PATCH] [FEAT] Added vue router and pages --- package-lock.json | 24 +- package.json | 3 +- public/sitemap.xml | 14 +- src/App.vue | 553 ++++------------------------------- src/composables/useLayers.ts | 11 +- src/main.ts | 3 + src/router/index.ts | 37 +++ src/views/AboutUs.vue | 23 ++ src/views/Contact.vue | 29 ++ src/views/HomeView.vue | 442 ++++++++++++++++++++++++++++ src/views/PrivacyPolicy.vue | 45 +++ 11 files changed, 679 insertions(+), 505 deletions(-) create mode 100644 src/router/index.ts create mode 100644 src/views/AboutUs.vue create mode 100644 src/views/Contact.vue create mode 100644 src/views/HomeView.vue create mode 100644 src/views/PrivacyPolicy.vue diff --git a/package-lock.json b/package-lock.json index 689bccd..0ae64b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "marked": "^15.0.7", "pinia": "^3.0.1", "pocketbase": "^0.26.2", - "vue": "^3.5.13" + "vue": "^3.5.13", + "vue-router": "^4.6.3" }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "^4.4.1", @@ -4905,6 +4906,27 @@ } } }, + "node_modules/vue-router": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz", + "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/vue-tsc": { "version": "2.2.12", "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.12.tgz", diff --git a/package.json b/package.json index e930c8f..f8abf74 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "marked": "^15.0.7", "pinia": "^3.0.1", "pocketbase": "^0.26.2", - "vue": "^3.5.13" + "vue": "^3.5.13", + "vue-router": "^4.6.3" }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "^4.4.1", diff --git a/public/sitemap.xml b/public/sitemap.xml index f91da1a..d9d19af 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -9,7 +9,19 @@ https://spritesheetgenerator.online/ - 2025-11-25T17:52:14+00:00 + 2025-11-26T15:50:00+00:00 + + + https://spritesheetgenerator.online/about + 2025-11-26T15:50:00+00:00 + + + https://spritesheetgenerator.online/contact + 2025-11-26T15:50:00+00:00 + + + https://spritesheetgenerator.online/privacy-policy + 2025-11-26T15:50:00+00:00 diff --git a/src/App.vue b/src/App.vue index ba47c73..d347693 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,340 +1,69 @@ diff --git a/src/composables/useLayers.ts b/src/composables/useLayers.ts index 5e083a5..b8d272c 100644 --- a/src/composables/useLayers.ts +++ b/src/composables/useLayers.ts @@ -11,10 +11,11 @@ export const createEmptyLayer = (name: string): Layer => ({ locked: false, }); +const layers = ref([createEmptyLayer('Base')]); +const activeLayerId = ref(layers.value[0].id); +const columns = ref(4); + export const useLayers = () => { - const layers = ref([createEmptyLayer('Base')]); - const activeLayerId = ref(layers.value[0].id); - const columns = ref(4); const settingsStore = useSettingsStore(); watch(columns, val => { @@ -27,6 +28,8 @@ export const useLayers = () => { const getMaxDimensions = (sprites: Sprite[]) => getMaxDimensionsSingle(sprites); + const visibleLayers = computed(() => layers.value.filter(l => l.visible)); + const updateSpritePosition = (id: string, x: number, y: number) => { const l = activeLayer.value; if (!l) return; @@ -217,8 +220,6 @@ export const useLayers = () => { } }; - const visibleLayers = computed(() => layers.value.filter(l => l.visible)); - return { layers, visibleLayers, diff --git a/src/main.ts b/src/main.ts index ac4a450..a423dfd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,8 +4,11 @@ import { createApp } from 'vue'; import { createPinia } from 'pinia'; import App from './App.vue'; +import router from './router'; + const app = createApp(App); app.use(createPinia()); +app.use(router); app.mount('#app'); diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..53ea722 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,37 @@ +import { createRouter, createWebHistory } from 'vue-router'; +import HomeView from '../views/HomeView.vue'; + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: HomeView, + }, + { + path: '/about', + name: 'about', + component: () => import('../views/AboutUs.vue'), + }, + { + path: '/contact', + name: 'contact', + component: () => import('../views/Contact.vue'), + }, + { + path: '/privacy-policy', + name: 'privacy-policy', + component: () => import('../views/PrivacyPolicy.vue'), + }, + ], + scrollBehavior(to, from, savedPosition) { + if (savedPosition) { + return savedPosition; + } else { + return { top: 0 }; + } + }, +}); + +export default router; diff --git a/src/views/AboutUs.vue b/src/views/AboutUs.vue new file mode 100644 index 0000000..3fe11bd --- /dev/null +++ b/src/views/AboutUs.vue @@ -0,0 +1,23 @@ + diff --git a/src/views/Contact.vue b/src/views/Contact.vue new file mode 100644 index 0000000..e793341 --- /dev/null +++ b/src/views/Contact.vue @@ -0,0 +1,29 @@ + diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue new file mode 100644 index 0000000..0f7cff0 --- /dev/null +++ b/src/views/HomeView.vue @@ -0,0 +1,442 @@ + + + diff --git a/src/views/PrivacyPolicy.vue b/src/views/PrivacyPolicy.vue new file mode 100644 index 0000000..30426a2 --- /dev/null +++ b/src/views/PrivacyPolicy.vue @@ -0,0 +1,45 @@ +