import React, { useEffect, useState } from 'react' import { transitClient } from '../api' export default function BusLinesManager({ token, user }) { const client = transitClient(token) const [busLines, setBusLines] = useState([]) const [lineNumber, setLineNumber] = useState('') const [startStop, setStartStop] = useState('') const [endStop, setEndStop] = useState('') const [estimatedDurationMinutes, setEstimatedDurationMinutes] = useState('') const [description, setDescription] = useState('') const [message, setMessage] = useState(null) const [isAdmin] = useState(Boolean(user?.userCode)) const loadBusLines = async () => { try { const res = await client.get('/admin/bus-lines') setBusLines(res.data.busLines || []) } catch (err) { setMessage('Error: ' + (err.response?.data?.error || err.message)) } } useEffect(() => { loadBusLines() }, []) const createBusLine = async (e) => { e.preventDefault() setMessage(null) try { const res = await client.post('/admin/bus-lines', { lineNumber: Number(lineNumber), startStop, endStop, estimatedDurationMinutes: Number(estimatedDurationMinutes), description, }) setLineNumber('') setStartStop('') setEndStop('') setEstimatedDurationMinutes('') setDescription('') setMessage('Bus line created: #' + (res.data.busLine?.id || 'ok')) await loadBusLines() } catch (err) { setMessage('Error: ' + (err.response?.data?.error || err.message)) } } return (

Buslijnen

Maak en bewerk buslijnen.

{busLines.map(line => (
#{line.id} Lijn {line.lineNumber}
{line.startStop} → {line.endStop}
{line.estimatedDurationMinutes} min
{line.description ?
{line.description}
: null}
))}
{isAdmin ? (
setLineNumber(e.target.value)} /> setStartStop(e.target.value)} /> setEndStop(e.target.value)} />
setEstimatedDurationMinutes(e.target.value)} /> setDescription(e.target.value)} />
) :
You must be admin to create bus lines.
} {message &&
{message}
}
) }