Skip to content

Commit 161c3ac

Browse files
committed
web: ui
1 parent 7187d09 commit 161c3ac

File tree

8 files changed

+174
-1348
lines changed

8 files changed

+174
-1348
lines changed

projects/rank-nsf-linker/docker-compose.dev.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
version: "3.9"
2-
31
services:
42
postgres:
53
image: cgr.dev/chainguard/postgres

projects/rank-nsf-linker/web/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@
99
"preview": "vite preview"
1010
},
1111
"dependencies": {
12-
"@deck.gl/layers": "^9.1.13",
13-
"deck.gl": "^9.1.13",
1412
"mapbox-gl": "^3.14.0",
13+
"maplibre-gl": "^5.9.0",
1514
"vue": "^3.5.17"
1615
},
1716
"devDependencies": {
Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
11
<script setup lang="ts">
2-
import DeckMap from './components/DeckMap.vue';
2+
import WorldMap from './components/WorldMap.vue';
33
</script>
44

55
<template>
6-
<div>
7-
<a href="https://vite.dev" target="_blank">
8-
<img src="/vite.svg" class="logo" alt="Vite logo" />
9-
</a>
10-
<a href="https://vuejs.org/" target="_blank">
11-
<img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
12-
</a>
6+
<div class="app">
7+
<WorldMap />
138
</div>
14-
<DeckMap />
159
</template>
1610

1711
<style scoped>
18-
.logo {
19-
height: 6em;
20-
padding: 1.5em;
21-
will-change: filter;
22-
transition: filter 300ms;
12+
.app {
13+
width: 100vw;
14+
height: 100vh;
15+
margin: 0;
16+
padding: 0;
17+
overflow: hidden;
2318
}
24-
.logo:hover {
25-
filter: drop-shadow(0 0 2em #646cffaa);
26-
}
27-
.logo.vue:hover {
28-
filter: drop-shadow(0 0 2em #42b883aa);
19+
</style>
20+
21+
<style>
22+
/* Ensure html and body also fill viewport */
23+
html,
24+
body,
25+
#app {
26+
width: 100%;
27+
height: 100%;
28+
margin: 0;
29+
padding: 0;
2930
}
3031
</style>

projects/rank-nsf-linker/web/src/components/DeckMap.vue

Lines changed: 0 additions & 61 deletions
This file was deleted.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<template>
2+
<div id="map" class="map-container"></div>
3+
</template>
4+
5+
<script setup lang="ts">
6+
import { onMounted, onBeforeUnmount } from 'vue'
7+
import maplibregl from 'maplibre-gl'
8+
import 'maplibre-gl/dist/maplibre-gl.css'
9+
10+
let map: maplibregl.Map | null = null
11+
12+
onMounted(() => {
13+
map = new maplibregl.Map({
14+
container: 'map',
15+
style: {
16+
version: 8,
17+
sources: {
18+
osm: {
19+
type: 'raster',
20+
tiles: ['https://tile.openstreetmap.org/{z}/{x}/{y}.png'],
21+
tileSize: 256,
22+
attribution:
23+
'© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap contributors</a>'
24+
}
25+
},
26+
layers: [
27+
{
28+
id: 'osm',
29+
type: 'raster',
30+
source: 'osm'
31+
}
32+
]
33+
},
34+
center: [7, 47.65],
35+
zoom: 4.5,
36+
})
37+
38+
// Example: Add marker (for later)
39+
new maplibregl.Marker().setLngLat([7, 47.65]).addTo(map)
40+
})
41+
42+
onBeforeUnmount(() => {
43+
map?.remove()
44+
})
45+
</script>
46+
47+
<style scoped>
48+
.map-container {
49+
position: fixed;
50+
top: 0;
51+
left: 0;
52+
width: 100vw;
53+
height: 100vh;
54+
}
55+
</style>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
declare module '*.vue' {
2+
import { DefineComponent } from 'vue'
3+
const component: DefineComponent<{}, {}, any>
4+
export default component
5+
}

projects/rank-nsf-linker/web/tsconfig.app.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"noUnusedParameters": true,
1010
"erasableSyntaxOnly": true,
1111
"noFallthroughCasesInSwitch": true,
12-
"noUncheckedSideEffectImports": true
12+
"noUncheckedSideEffectImports": true,
13+
"types": ["vite/client"]
1314
},
14-
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
15+
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"],
1516
}

0 commit comments

Comments
 (0)