"use client" import { Button } from '@/components/ui/button'; import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "./ui/card"; import { getHandler, getHosts, getRouteUpstreams } from '@/lib/utils'; import { toast } from './ui/use-toast'; import React, { useState } from 'react'; import useSWRMutation from 'swr/mutation'; import { deleteRoute, useRoutes } from '@/lib/clientActions'; import { RouteDialog } from './RouteDialog'; import Error from './Error'; import Loading from './Loading'; export default function RouteCards() { const { data: routes, error, isLoading } = useRoutes(); let routesMap: Route[] = routes as Route[]; const [route, setRoute] = useState(); const [open, setOpen] = useState(false); const { trigger: handleDelete } = useSWRMutation("/api/caddy/routes", deleteRoute, { onError: () => { return toast({ title: "Error", description: "There was an error deleting the route", variant: "destructive" }); }, onSuccess: () => { toast({ title: "Success", description: "Route deleted successfully!", variant: "success" }); } }); let editRoute = (route: Route) => { setRoute(route); } if (error) return if (isLoading) return return ( <> {route && } { routesMap.map((route, index) => (
{getHosts(route)!.values().next().value} {getHosts(route)!.map((route => {route}))}

Type

{getHandler(route)}

Destination

{getRouteUpstreams(route)?.map((upstream => upstream.dial))}

))} ) }