Files
hnh-map/frontend-nuxt
Nikolay Tatarinov fd624c2357 Refactor frontend components for improved functionality and accessibility
- Consolidated global error handling in app.vue to redirect users to the login page on API authentication failure.
- Enhanced MapView component by reintroducing event listeners for selected map and marker updates, improving interactivity.
- Updated PasswordInput and various modal components to ensure proper input handling and accessibility compliance.
- Refactored MapControls and MapControlsContent to streamline prop management and enhance user experience.
- Improved error handling in local storage operations within useMapBookmarks and useRecentLocations composables.
- Standardized input elements across forms for consistency in user interaction.
2026-03-04 14:06:27 +03:00
..

HnH Map Nuxt 4 frontend

Nuxt 4 + Tailwind + DaisyUI frontend for the HnH map. Served by the Go backend under /map/.

In dev mode the app is available at the path with baseURL /map/ (e.g. http://localhost:3000/map/). The Go backend must be reachable (directly or via the dev proxy in nuxt.config.ts).

Project structure

  • pages/ — route pages (e.g. map view, profile, login)
  • components/ — Vue components
  • composables/ — shared composition functions
  • layouts/ — layout components
  • server/ — Nitro server (if used)
  • plugins/ — Nuxt plugins
  • public/gfx/ — static assets (sprites, terrain, etc.)

Requirements

  • Node.js 20+ (required for build; engines in package.json). Use nvm use if you have .nvmrc, or build via Docker (see below).
  • npm

Setup

npm install

After upgrading the repo (e.g. to Nuxt 4), run npm install in this directory, then npx nuxt prepare, and verify with npm run build and npm run test.

Development

npm run dev

Then open the app at the path shown (e.g. http://localhost:3000/map/). Ensure the Go backend is running and proxying or serving this app if needed.

Build

npm run build

Static export (for Go http.Dir):

npm run generate

Output is in .output/public. To serve from the existing frontend directory, copy contents to ../frontend after generate, or set nitro.output.dir in nuxt.config.ts and build from the repo root.

Build with Docker (Node 20)

Build requires Node 20+. If your host has an older version (e.g. Node 18), build the frontend in Docker:

docker build -t frontend-nuxt .
docker create --name fn frontend-nuxt
docker cp fn:/frontend ./output-public
docker rm fn
# Copy output-public/* into repo frontend/ and run Go server

Cutover from Vue 2 frontend

  1. Build this app (npm run generate).
  2. Copy .output/public/* into the repos frontend directory (or point Go at the Nuxt output directory).
  3. Restart the Go server. The same /map/ routes and API remain.