diff --git a/web/src/components/ServicesComponent.tsx b/web/src/components/ServicesComponent.tsx
index d262c6f..57aeb98 100644
--- a/web/src/components/ServicesComponent.tsx
+++ b/web/src/components/ServicesComponent.tsx
@@ -5,9 +5,7 @@ import { Button } from './ui/button';
import { Input, Label } from './ui';
import { Alert, AlertDescription } from './ui/alert';
import { Textarea } from './ui/textarea';
-import { Badge } from './ui/badge';
import { Switch } from './ui/switch';
-import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './ui/select';
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from './ui/collapsible';
import {
Globe, Loader2, AlertCircle, CheckCircle, Play, RotateCw,
@@ -159,16 +157,10 @@ export function ServicesComponent() {
Include subdomains
-
- TLS:
-
-
+
@@ -237,7 +229,19 @@ export function ServicesComponent() {
-
{service.backend.address}
+
{
+ const val = e.target.value.trim();
+ if (val && val !== service.backend.address) {
+ updateMutation.mutate({
+ domain: service.domain,
+ updates: { backend: { ...service.backend, address: val } },
+ });
+ }
+ }}
+ />
@@ -259,10 +263,18 @@ export function ServicesComponent() {
-
-
- {isPassthrough ? 'Passthrough' : 'Terminate'}
-
+ updateMutation.mutate({
+ domain: service.domain,
+ updates: {
+ tls: v ? 'terminate' : 'passthrough',
+ backend: { ...service.backend, type: v ? 'http' : 'tcp-passthrough' },
+ },
+ })}
+ disabled={updateMutation.isPending}
+ />
+