From f15253a874c7c6c56390b0e669a16a498ae65129 Mon Sep 17 00:00:00 2001 From: KodekaTeam Date: Sun, 12 Jul 2026 00:03:45 +0700 Subject: [PATCH] style(panel-access): modifying the form structure design --- .../components/PanelAccessSettingsPanel.tsx | 453 +++++++++--------- 1 file changed, 236 insertions(+), 217 deletions(-) diff --git a/src/app/settings/components/PanelAccessSettingsPanel.tsx b/src/app/settings/components/PanelAccessSettingsPanel.tsx index 2868151..b754554 100644 --- a/src/app/settings/components/PanelAccessSettingsPanel.tsx +++ b/src/app/settings/components/PanelAccessSettingsPanel.tsx @@ -3,9 +3,9 @@ import { useEffect, useMemo, useState } from "react"; import { AlertTriangle, + ChevronDown, Globe2, Loader2, - RefreshCw, ShieldCheck, } from "lucide-react"; import { @@ -72,14 +72,11 @@ export default function PanelAccessSettingsPanel({ const selectedCapability = capabilities?.proxies.find( (proxy) => proxy.type === panelProxy, ); - const panelRoutePreview = panelDomain.trim() - ? `${panelDomain.trim()} -> ${panelProxy}` - : "No custom panel domain configured"; const canProvision = Boolean( panelDomain.trim() && - selectedCapability?.available && - selectedCapability.supportsProvisioning && - !provisioning, + selectedCapability?.available && + selectedCapability.supportsProvisioning && + !provisioning, ); useEffect(() => { @@ -140,40 +137,74 @@ export default function PanelAccessSettingsPanel({ return (
-
-

+ {/* - - Panel Access -

-
- Custom domain provisioning for the Doktainer panel + 1 + */} +
+

+ + Configure Panel Domain +

+
+ Set your panel domain and reverse proxy. Doktainer will handle the + rest. +
@@ -183,154 +214,158 @@ export default function PanelAccessSettingsPanel({
- {error ? ( -
- - {error} -
- ) : null} - - {message ? ( -
- {message} -
- ) : null} - - {capabilities?.target.diagnostic ? ( -
- {capabilities.target.diagnostic} -
- ) : null} -
-
- Domain - setPanelDomain(event.target.value)} - /> -
-
- -
-
- Reverse Proxy + {error ? (
- {proxyOptions.map((option) => { - const active = panelProxy === option.value; - const capability = capabilities?.proxies.find( - (proxy) => proxy.type === option.value, - ); - const disabled = - loadingCapabilities || - !capability?.available || - !capability.supportsProvisioning; - return ( - - ); - })} + + {error}
- {selectedCapability?.reason ? ( -
- {selectedCapability.reason} -
- ) : null} -
+ ) : null} + + {message ? ( +
+ {message} +
+ ) : null} + + {capabilities?.target.diagnostic ? ( +
+ {capabilities.target.diagnostic} +
+ ) : null} +
+
+ Domain + setPanelDomain(event.target.value)} + /> +
+ Enter the domain used to open the Doktainer panel. +
+
+
+ + Reverse Proxy{" "} + + (Auto Detect) + + +
+ + +
+ {selectedCapability?.reason ? ( +
+ {selectedCapability.reason} +
+ ) : null} +
+
+ +
- Auto SSL + HTTPS / SSL
- Certbot or proxy-managed TLS + Automatically provision SSL certificate
setPanelAutoSsl((current) => !current)} />
-
- {capabilities?.autoSsl.reason ? ( -
- {capabilities.autoSsl.reason} -
- ) : null} + {capabilities?.autoSsl.reason ? ( +
+ {capabilities.autoSsl.reason} +
+ ) : null} -
- - {panelRoutePreview} +
-
);