move cert to info box and add network access to create wizard

This commit is contained in:
miloschwartz
2026-07-07 14:51:15 -04:00
parent 4c8bd4db0a
commit beaa5735ce
8 changed files with 65 additions and 40 deletions
+1 -1
View File
@@ -155,7 +155,7 @@ export function LayoutMobileMenu({
</span>
<span className="flex-1">
{t(
"resourceLauncherTitle"
"resourceSidebarLauncherTitle"
)}
</span>
</Link>
+2 -2
View File
@@ -195,7 +195,7 @@ export function LayoutSidebar({
sideOffset={8}
>
<p>
{t("resourceLauncherTitle")}
{t("resourceSidebarLauncherTitle")}
</p>
</TooltipContent>
</Tooltip>
@@ -211,7 +211,7 @@ export function LayoutSidebar({
<SquareMousePointer className="h-4 w-4" />
</span>
<span className="flex-1">
{t("resourceLauncherTitle")}
{t("resourceSidebarLauncherTitle")}
</span>
</Link>
)}
+36 -1
View File
@@ -1,5 +1,6 @@
"use client";
import CertificateStatus from "@app/components/CertificateStatus";
import CopyToClipboard from "@app/components/CopyToClipboard";
import {
InfoSection,
@@ -17,14 +18,17 @@ import {
type LauncherAccessFields
} from "@app/lib/launcherResourceAccess";
import type { PrivateResourceMode } from "@app/lib/privateResourceForm";
import { build } from "@server/build";
import { useTranslations } from "next-intl";
type SiteResourceInfoInput = {
orgId: string;
mode: PrivateResourceMode;
destination: string | null;
destinationPort: number | null;
scheme: "http" | "https" | null;
ssl: boolean;
domainId?: string | null;
fullDomain?: string | null;
alias?: string | null;
aliasAddress?: string | null;
@@ -108,9 +112,20 @@ export function SiteResourceInfoSections({
const showDestination = !(
siteResource.mode === "ssh" && siteResource.authDaemonMode === "native"
);
const showCertificate = !!(
siteResource.mode === "http" &&
siteResource.ssl &&
siteResource.domainId &&
siteResource.fullDomain &&
build != "oss"
);
const numSections =
2 + (showDestination ? 1 : 0) + (showAlias ? 1 : 0) + (isPanel ? 1 : 0);
2 +
(showDestination ? 1 : 0) +
(showAlias ? 1 : 0) +
(showCertificate ? 1 : 0) +
(isPanel ? 1 : 0);
const sections = (
<InfoSections cols={numSections} layout={isPanel ? "panel" : "default"}>
@@ -155,6 +170,26 @@ export function SiteResourceInfoSections({
</InfoSection>
) : null}
{showCertificate ? (
<InfoSection>
<InfoSectionTitle>
{t("certificateStatus", {
defaultValue: "Certificate"
})}
</InfoSectionTitle>
<InfoSectionContent>
<CertificateStatus
orgId={siteResource.orgId}
domainId={siteResource.domainId!}
fullDomain={siteResource.fullDomain!}
autoFetch={true}
showLabel={false}
polling={true}
/>
</InfoSectionContent>
</InfoSection>
) : null}
{isPanel ? (
<InfoSection>
<InfoSectionTitle>{t("portRestrictions")}</InfoSectionTitle>