import { useState, useEffect } from "react" import { getStatuses, logout } from "../api/connections" import type { ConnectionStatus } from "../types/connection" import { ServiceCard } from "./ServiceCard" import { ConnectModal } from "./ConnectModal" import "./Dashboard.scss" const SERVICES = [ { serviceType: 'HOMEBOX', label: 'Homebox', icon: '📦' }, ] as const export function Dashboard() { const [statuses, setStatuses] = useState([]) const [openModal, setOpenModal] = useState(null) const refresh = () => { getStatuses().then(setStatuses).catch(() => { }) } useEffect(() => { refresh() }, []) const handleDisconnect = (serviceType: string) => { logout(serviceType).then(refresh).catch(() => { }) } const activeModal = SERVICES.find(s => s.serviceType === openModal) return (

Vaessl Dashboard

Services

{SERVICES.map(({ serviceType, label, icon }) => ( s.serviceType === serviceType) ?? null} onConnect={() => setOpenModal(serviceType)} onDisconnect={() => handleDisconnect(serviceType)} /> ))}
{activeModal && ( setOpenModal(null)} onSuccess={() => { setOpenModal(null); refresh() }} /> )}
) }