From 73cc730a5ca6fa9b5fc571316f1d5cfe9357ea5c Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Wed, 11 Oct 2023 20:32:55 +0200 Subject: [PATCH 1/6] Changed variable names Because the map will eventually be used for everything, not just one continent --- src/assets/scss/_leaflet.scss | 2 +- .../maps/{AllianceKaldelienne.astro => WorldMap.astro} | 8 ++++---- .../api/data/{alliance.markers.ts => world.markers.ts} | 2 +- src/pages/api/markers.json.ts | 4 ++-- src/pages/index.astro | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) rename src/components/maps/{AllianceKaldelienne.astro => WorldMap.astro} (98%) rename src/pages/api/data/{alliance.markers.ts => world.markers.ts} (99%) diff --git a/src/assets/scss/_leaflet.scss b/src/assets/scss/_leaflet.scss index 8ab520e5..6fd81eaf 100644 --- a/src/assets/scss/_leaflet.scss +++ b/src/assets/scss/_leaflet.scss @@ -5,7 +5,7 @@ width: 100%; max-width: 100%; max-height: 100%; - background: #98bcd0 !important; + background: #f1f5f9; .leaflet-map-pane { .leaflet-tooltip-pane { diff --git a/src/components/maps/AllianceKaldelienne.astro b/src/components/maps/WorldMap.astro similarity index 98% rename from src/components/maps/AllianceKaldelienne.astro rename to src/components/maps/WorldMap.astro index 7f7e9daf..4c0fc63b 100644 --- a/src/components/maps/AllianceKaldelienne.astro +++ b/src/components/maps/WorldMap.astro @@ -9,13 +9,15 @@ interface Props { const { markers, players } = Astro.props --- -
+
+
+
+ + \ No newline at end of file diff --git a/src/components/maps/overlay/SearchMarkers.vue b/src/components/maps/overlay/SearchMarkers.vue new file mode 100644 index 00000000..6936f46f --- /dev/null +++ b/src/components/maps/overlay/SearchMarkers.vue @@ -0,0 +1,182 @@ + + + + + \ No newline at end of file diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 9c133e77..dedbbfb9 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -23,6 +23,8 @@ const { title } = Astro.props; + + diff --git a/src/pages/index.astro b/src/pages/index.astro index b37074c5..8e7228cb 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,6 +1,7 @@ --- import Layout from '../layouts/Layout.astro'; import WorldMap from '../components/maps/WorldMap.astro' +import WorldMapOverlay from '../components/maps/WorldMapOverlay.astro' const fetchLandMarkers = await fetch('http://localhost:4321/api/markers.json'); const fetchPlayersPosition = await fetch('http://localhost:4321/api/players.json'); @@ -9,5 +10,6 @@ const playerCoords = await fetchPlayersPosition.json(); --- + diff --git a/tsconfig.json b/tsconfig.json index f363b6b0..758cc998 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,10 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@/*": ["src/*"], - } + "@/*": [ + "src/*" + ] + }, + "jsx": "preserve" } } \ No newline at end of file From e654d3f96aa813f980be9351445ddaf4a776a7ea Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Fri, 13 Oct 2023 17:19:58 +0200 Subject: [PATCH 3/6] Added nanostore logic to centralise data --- package-lock.json | 38 +++++++++++++++++++ package.json | 2 + src/components/maps/WorldMap.astro | 12 +++--- src/components/maps/WorldMapOverlay.astro | 13 +++---- src/components/maps/overlay/SearchMarkers.vue | 19 ++++++---- src/components/maps/worldStore.ts | 30 +++++++++++++++ src/types/Leaflet.ts | 14 +++---- 7 files changed, 98 insertions(+), 30 deletions(-) create mode 100644 src/components/maps/worldStore.ts diff --git a/package-lock.json b/package-lock.json index 6b1bacb9..915e27e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,11 @@ "version": "0.0.1", "dependencies": { "@astrojs/vue": "^3.0.1", + "@nanostores/vue": "^0.10.0", "@types/leaflet": "^1.9.6", "@vueuse/core": "^10.5.0", "astro": "^3.2.0", + "nanostores": "^0.9.3", "vue": "^3.3.4" }, "devDependencies": { @@ -927,6 +929,28 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@nanostores/vue": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nanostores/vue/-/vue-0.10.0.tgz", + "integrity": "sha512-832RAUbzRfHPs1CdqVEwfvgB2+RD/INji4Zo8bUSEfRO2pQRMMeq479gydnohGpRaa0oNwlfKo7TGFXCghq/1g==", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@nanostores/logger": ">=0.2.3", + "@vue/devtools-api": ">=6.5.0", + "nanostores": ">=0.9.2", + "vue": ">=3.3.1" + }, + "peerDependenciesMeta": { + "@nanostores/logger": { + "optional": true + }, + "@vue/devtools-api": { + "optional": true + } + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4046,6 +4070,20 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nanostores": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.9.3.tgz", + "integrity": "sha512-KobZjcVyNndNrb5DAjfs0WG0lRcZu5Q1BOrfTOxokFLi25zFrWPjg+joXC6kuDqNfSt9fQwppyjUBkRPtsL+8w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", diff --git a/package.json b/package.json index 8e37700d..9f2fc505 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,11 @@ }, "dependencies": { "@astrojs/vue": "^3.0.1", + "@nanostores/vue": "^0.10.0", "@types/leaflet": "^1.9.6", "@vueuse/core": "^10.5.0", "astro": "^3.2.0", + "nanostores": "^0.9.3", "vue": "^3.3.4" }, "devDependencies": { diff --git a/src/components/maps/WorldMap.astro b/src/components/maps/WorldMap.astro index 38f582b0..717e269f 100644 --- a/src/components/maps/WorldMap.astro +++ b/src/components/maps/WorldMap.astro @@ -1,12 +1,10 @@ --- -import type { MapMarker } from '@/types/Leaflet'; +import { allTasks } from 'nanostores'; +import { $world } from './worldStore'; -interface Props { - markers: MapMarker[]; - players?: MapMarker; -} - -const { markers, players } = Astro.props +$world.listen(() => {}) +await allTasks() +const { markers, players } = $world.get() ---
diff --git a/src/components/maps/WorldMapOverlay.astro b/src/components/maps/WorldMapOverlay.astro index cd882926..db5700db 100644 --- a/src/components/maps/WorldMapOverlay.astro +++ b/src/components/maps/WorldMapOverlay.astro @@ -1,13 +1,12 @@ --- +import { allTasks } from 'nanostores'; +import { $world } from './worldStore'; + import SearchMarkers from "./overlay/SearchMarkers.vue"; -import type { MapMarker } from '@/types/Leaflet'; -interface Props { - markers: MapMarker[]; - players?: MapMarker; -} - -const { markers, players } = Astro.props +$world.listen(() => {}) +await allTasks() +const { markers, players } = $world.get() ---
diff --git a/src/components/maps/overlay/SearchMarkers.vue b/src/components/maps/overlay/SearchMarkers.vue index 6936f46f..abcb51e5 100644 --- a/src/components/maps/overlay/SearchMarkers.vue +++ b/src/components/maps/overlay/SearchMarkers.vue @@ -1,12 +1,15 @@