import { Head, useForm, usePage } from '@inertiajs/react'; import { Site } from '@/types/site'; import ServerLayout from '@/layouts/server/layout'; import { Server } from '@/types/server'; import Container from '@/components/container'; import HeaderContainer from '@/components/header-container'; import Heading from '@/components/heading'; import { Button } from '@/components/ui/button'; import { BookOpenIcon, LoaderCircleIcon } from 'lucide-react'; import { FormEvent } from 'react'; import { LoadBalancerServer } from '@/types/load-balancer-server'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'; import { Form, FormField, FormFields } from '@/components/ui/form'; import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import InputError from '@/components/ui/input-error'; import FormSuccessful from '@/components/form-successful'; export default function LoadBalancer() { const page = usePage<{ server: Server; site: Site; loadBalancerServers: LoadBalancerServer[]; }>(); const form = useForm<{ method: 'round-robin' | 'least-connections' | 'ip-hash'; servers: { server: string; port: string; weight: string; backup: boolean; }[]; }>({ method: 'round-robin', servers: [], }); const submit = (e: FormEvent) => { e.preventDefault(); form.post(route('application.update-load-balancer', { server: page.props.server.id, site: page.props.site.id }), { onSuccess: () => { form.reset(); }, preserveScroll: true, }); }; return (
Configs Modify load balancer configs
); }