Add progressive web app companion for cross-platform access
Vite + TypeScript PWA that mirrors the Android app's core features: - Pre-processed shelter data (build-time UTM33N→WGS84 conversion) - Leaflet map with shelter markers, user location, and offline tiles - Canvas compass arrow (ported from DirectionArrowView.kt) - IndexedDB shelter cache with 7-day staleness check - Service worker with CacheFirst tiles and precached app shell - i18n for en, nb, nn (ported from Android strings.xml) - iOS/Android compass handling with low-pass filter - Respects user map interaction (no auto-snap on pan/zoom) - Build revision cache-breaker for reliable SW updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
46365b713b
commit
e8428de775
12051 changed files with 1799735 additions and 0 deletions
4450
pwa/public/data/shelters.json
Normal file
4450
pwa/public/data/shelters.json
Normal file
File diff suppressed because it is too large
Load diff
13
pwa/public/icons/generate-icons.sh
Normal file
13
pwa/public/icons/generate-icons.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
# Generate simple SVG-based placeholder icons for the PWA
|
||||
# These should be replaced with proper icons later
|
||||
|
||||
for size in 192 512; do
|
||||
cat > "public/icons/icon-${size}.svg" << EOF
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
|
||||
<rect width="${size}" height="${size}" fill="#1A1A2E" rx="32"/>
|
||||
<path d="M${size/2} ${size*15/100}L${size*15/100} ${size*55/100}h${size*15/100}v${size*30/100}h${size*40/100}v-${size*30/100}h${size*15/100}Z" fill="#FF6B35" stroke="#fff" stroke-width="${size/50}"/>
|
||||
<text x="${size/2}" y="${size*75/100}" text-anchor="middle" fill="#fff" font-size="${size*15/100}" font-weight="bold" font-family="sans-serif">T</text>
|
||||
</svg>
|
||||
EOF
|
||||
done
|
||||
BIN
pwa/public/icons/icon-192.png
Normal file
BIN
pwa/public/icons/icon-192.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 963 B |
BIN
pwa/public/icons/icon-512.png
Normal file
BIN
pwa/public/icons/icon-512.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
24
pwa/public/manifest.webmanifest
Normal file
24
pwa/public/manifest.webmanifest
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "Tilfluktsrom",
|
||||
"short_name": "Tilfluktsrom",
|
||||
"description": "Find the nearest public shelter in Norway",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"orientation": "portrait",
|
||||
"theme_color": "#1A1A2E",
|
||||
"background_color": "#1A1A2E",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/icons/icon-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue