Started implementing adding routes

This commit is contained in:
brian 2023-11-18 10:16:08 -05:00
parent 02ba2faef0
commit 3b579f1f97
2 changed files with 63 additions and 27 deletions

View file

@ -7,37 +7,73 @@ import { useRoutes } from '@/lib/clientActions';
import Image from 'next/image'; import Image from 'next/image';
import Loading from '@/components/Loading'; import Loading from '@/components/Loading';
import Error from '@/components/Error'; import Error from '@/components/Error';
import { useState } from 'react';
import { RouteDialog } from '@/components/RouteDialog';
export default function Home() { export default function Home() {
const [routeDialog, setRouteDialog] = useState(false);
const { data: routes, error, isLoading } = useRoutes(); const { data: routes, error, isLoading } = useRoutes();
let routesMap: Route[] = routes as Route[]; let routesMap: Route[] = routes as Route[];
if(error) return <Error /> if (error) return <Error />
if(isLoading) return <Loading /> if (isLoading) return <Loading />
return ( let route = {
<main> "handle": [
<div className='flex items-center justify-center p-6'> {
<Card className='flex'> "handler": "subroute",
<CardHeader> "routes": [
<CardTitle>Active Routes</CardTitle> {
<CardDescription>Amount of configured routes</CardDescription> "handle": [
</CardHeader> {
<CardContent className='flex items-center'> "handler": "reverse_proxy",
<div> "upstreams": [
<p className='text-xl font-semibold translate-y-2'>{routesMap.length}</p> {
</div> "dial": "1.1.1.1"
</CardContent> }
<CardFooter> ]
<Button className='translate-y-2.5'>Create</Button> }
</CardFooter> ]
</Card> }
</div> ]
<div className='grid grid-flow-row-dense md:grid-cols-6 sm:grid-cols-2 p-2'> }
<RouteCards routes={routesMap} /> ],
</div> "match": [
</main> {
) "host": [
"containers.grug.dev",
"containers.daddyimpregnant.com",
"containers.mizuledevelopment.com"
]
}
],
"terminal": true
}
return (
<main>
{routeDialog && <RouteDialog route={route as Route} />}
<div className='flex items-center justify-center p-6'>
<Card className='flex'>
<CardHeader>
<CardTitle>Active Routes</CardTitle>
<CardDescription>Amount of configured routes</CardDescription>
</CardHeader>
<CardContent className='flex items-center'>
<div>
<p className='text-xl font-semibold translate-y-2'>{routesMap.length}</p>
</div>
</CardContent>
<CardFooter>
<Button onClick={() => setRouteDialog(!routeDialog)} className='translate-y-2.5'>Create</Button>
</CardFooter>
</Card>
</div>
<div className='grid grid-flow-row-dense md:grid-cols-6 sm:grid-cols-2 p-2'>
<RouteCards routes={routesMap} />
</div>
</main>
)
} }

View file

@ -53,12 +53,12 @@
} }
export async function updateRoute(index: number, route: Route) { export async function updateRoute(index: number, route: Route) {
return fetch(`http://192.168.1.69:2019/config/apps/http/servers/srv0/routes/${index}`, { return await fetch(`http://192.168.1.69:2019/config/apps/http/servers/srv0/routes/${index}`, {
method: 'PATCH', method: 'PATCH',
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },
cache: 'no-cache', cache: 'no-cache',
body: JSON.stringify(route) body: JSON.stringify(route)
}).then((res) => res.json()).catch((err) => console.log(err)); }).then((res) => res.json())
} }