fix: final cleanup — disable radial menu, document auth pattern

B14: Comment out RadialMenu render — all 5 wedges show "coming soon"
     toasts with no functional actions. Code preserved for when
     actions are wired.

B5:  Add detailed JSDoc to fetchAuthState explaining the
     redirect:manual pattern and its dependencies on Caddy/Authentik
     configuration.

B9:  Investigated — user-select CSS errors come from MapLibre's own
     maplibre-gl.css, not our code. WONTFIX (library issue).

Caddy changes (CT 101):
B6:  Fixed recon.echo6.co header stripping bug — same pattern as navi
B8:  Added /api/traffic/* to @authed_user (TomTom API must be authed)
This commit is contained in:
Matt 2026-04-27 04:11:34 +00:00
commit 53d25dafd8
2 changed files with 14 additions and 2 deletions

View file

@ -292,7 +292,18 @@ export async function fetchLandclass(lat, lon, signal) {
/** /**
* Check authentication state via whoami endpoint. * Check authentication state via whoami endpoint.
* Uses redirect: manual to detect auth without triggering navigation. *
* PATTERN: Uses fetch with redirect:'manual' to detect Authentik SSO state
* without triggering browser navigation. When unauthenticated, Caddy's
* forward_auth returns a 302 redirect to Authentik. With redirect:'manual',
* the browser exposes this as resp.type === 'opaqueredirect' instead of
* following the redirect.
*
* DEPENDENCIES:
* - /api/auth/whoami must be in Caddy's @authed_user path matcher
* - Authentik proxy outpost must return 302 (not 401) for unauthed requests
* - If Authentik changes to return 401, update the status check below
*
* @returns {Promise<{authenticated: boolean, username: string|null}>} * @returns {Promise<{authenticated: boolean, username: string|null}>}
*/ */
export async function fetchAuthState() { export async function fetchAuthState() {

View file

@ -1504,7 +1504,7 @@ const MapView = forwardRef(function MapView(_, ref) {
> >
Z {zoomLevel.toFixed(1)} Z {zoomLevel.toFixed(1)}
</div> </div>
{/* Radial context menu */} {/* Radial menu disabled until actions are wired
<RadialMenu <RadialMenu
open={radialMenu.open} open={radialMenu.open}
x={radialMenu.x} x={radialMenu.x}
@ -1515,6 +1515,7 @@ const MapView = forwardRef(function MapView(_, ref) {
centerLabel={radialMenu.centerLabel} centerLabel={radialMenu.centerLabel}
onDismiss={() => setRadialMenu((m) => ({ ...m, open: false }))} onDismiss={() => setRadialMenu((m) => ({ ...m, open: false }))}
/> />
*/}
</div> </div>
) )
}) })