Merge pull request #2 from zvx-echo6/extraction-2-panel-auth-wiring

Read auth URLs from /api/config (extraction #2 PR-C)
This commit is contained in:
malice 2026-05-22 09:44:30 -06:00 committed by GitHub
commit ddd2d8495a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 2 deletions

View file

@ -3,6 +3,7 @@ import { LogIn, LogOut, Footprints, Bike, Car, Shield, AlertTriangle, Zap, X, Ma
import ThemePicker from './ThemePicker' import ThemePicker from './ThemePicker'
import { useStore, usePanelState } from '../store' import { useStore, usePanelState } from '../store'
import { hasFeature } from '../config' import { hasFeature } from '../config'
import { useConfig } from '../hooks/useConfig'
import SearchBar from './SearchBar' import SearchBar from './SearchBar'
import ManeuverList from './ManeuverList' import ManeuverList from './ManeuverList'
import ContactList from './ContactList' import ContactList from './ContactList'
@ -54,6 +55,7 @@ export default function Panel({ onClearRoute }) {
const dragStartState = useRef('half') const dragStartState = useRef('half')
const showContacts = hasFeature('has_contacts') && auth.authenticated const showContacts = hasFeature('has_contacts') && auth.authenticated
const cfg = useConfig()
useEffect(() => { useEffect(() => {
const check = () => setIsMobile(window.innerWidth < 768) const check = () => setIsMobile(window.innerWidth < 768)
@ -62,8 +64,12 @@ export default function Panel({ onClearRoute }) {
return () => window.removeEventListener('resize', check) return () => window.removeEventListener('resize', check)
}, []) }, [])
const handleLogin = () => { window.location.href = '/outpost.goauthentik.io/start?rd=%2F' } // Auth URLs come from /api/config (config.auth.*); the literals are the
const handleLogout = () => { window.location.href = 'https://auth.echo6.co/if/flow/default-invalidation-flow/?next=https://navi.echo6.co/' } // current home-profile values, kept as fallback for an older backend that
// doesn't yet serve `auth`, or when FALLBACK_CONFIG is in use (offline).
// TODO(navi): add tests when test infra lands see extraction #2 PR-C
const handleLogin = () => { window.location.href = cfg?.auth?.login_url ?? '/outpost.goauthentik.io/start?rd=%2F' }
const handleLogout = () => { window.location.href = cfg?.auth?.logout_url ?? 'https://auth.echo6.co/if/flow/default-invalidation-flow/?next=https://navi.echo6.co/' }
const handleTouchStart = useCallback((e) => { const handleTouchStart = useCallback((e) => {
dragStartY.current = e.touches[0].clientY dragStartY.current = e.touches[0].clientY

View file

@ -21,6 +21,10 @@ const FALLBACK_CONFIG = {
address_book: '/api/address_book', address_book: '/api/address_book',
valhalla: '/valhalla', valhalla: '/valhalla',
}, },
auth: {
login_url: '/outpost.goauthentik.io/start?rd=%2F',
logout_url: 'https://auth.echo6.co/if/flow/default-invalidation-flow/?next=https://navi.echo6.co/',
},
features: { features: {
has_nominatim_details: false, has_nominatim_details: false,
has_kiwix_wiki: false, has_kiwix_wiki: false,