mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-09-15 05:35:28 +02:00
Each Data Filters section acts on one or more map layers, but the panel never knew the layer state, so a filter could target a layer that was switched off and silently do nothing. Four of the five sections build their option lists from live data, so with the layer off the dialog was also empty and unsearchable, with no hint why. Declare the layer keys per section, badge sections whose layers are all off, and show a banner in the dialog with an ENABLE control per disabled layer. Enabling from the dialog refetches within a few seconds and the list fills in place. The empty list now says whether the layer is off, data is still loading, or the search simply has no match. APPLY stays a plain apply. Callers that do not pass layer state keep the old behaviour. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ShadowBroker Frontend
Next.js 16 dashboard with MapLibre GL and Framer Motion.
Development
npm install
npm run dev # http://localhost:3000
API URL Configuration
The browser calls relative /api/* paths. The catch-all route handler at
src/app/api/[...path]/route.ts proxies those requests to the backend using
the server-side BACKEND_URL environment variable at request time.
This keeps the backend URL out of the client bundle and lets Docker or other deployments change the backend target without rebuilding the frontend.
Common Scenarios
| Scenario | Action needed |
|---|---|
Local dev (localhost:3000 + backend on 127.0.0.1:8000) |
None. The proxy defaults to http://127.0.0.1:8000. |
| Docker Compose | None. docker-compose.yml sets BACKEND_URL=http://backend:8000. |
| Backend on a different host or port | Set BACKEND_URL before starting the Next.js server/container. |
| Reverse proxy in front of the frontend | Point external clients at the frontend; keep BACKEND_URL set to the backend address reachable from the Next.js server. |
Setting BACKEND_URL
# Shell (Linux/macOS)
BACKEND_URL=http://myserver:8000 npm run dev
# PowerShell (Windows)
$env:BACKEND_URL="http://myserver:8000"; npm run dev
# Docker Compose
# Edit the frontend service environment or add a compose override:
# BACKEND_URL=http://myserver:8000
Theming
Dark mode is the default. A light/dark toggle is available in the left panel
toolbar. Theme preference is persisted in localStorage as sb-theme and
applied via the data-theme attribute on <html>. CSS variables in
globals.css define all structural colors for both themes.