From 88ea4391e0cf1c2d302d38994c8f84ac034cadbb Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 2 Jun 2026 15:31:33 -0700 Subject: [PATCH] Show new types of resources right --- server/routers/resource/getUserResources.ts | 2 + src/components/MemberResourcesPortal.tsx | 149 ++++++++++++-------- 2 files changed, 94 insertions(+), 57 deletions(-) diff --git a/server/routers/resource/getUserResources.ts b/server/routers/resource/getUserResources.ts index 4c7d3e9ad..114432a73 100644 --- a/server/routers/resource/getUserResources.ts +++ b/server/routers/resource/getUserResources.ts @@ -438,6 +438,7 @@ export async function getUserResources( return { siteResourceId: siteResource.siteResourceId, name: siteResource.name, + niceId: siteResource.niceId, destination: siteResource.destination, mode: siteResource.mode, ssl: siteResource.ssl, @@ -492,6 +493,7 @@ export type GetUserResourcesResponse = { siteResources: Array<{ siteResourceId: number; name: string; + niceId: string; destination: string; mode: string; tcpPortRangeString: string | null; diff --git a/src/components/MemberResourcesPortal.tsx b/src/components/MemberResourcesPortal.tsx index fded7df52..21b7a4cd7 100644 --- a/src/components/MemberResourcesPortal.tsx +++ b/src/components/MemberResourcesPortal.tsx @@ -41,6 +41,7 @@ import { TooltipTrigger } from "@/components/ui/tooltip"; import CopyToClipboard from "@app/components/CopyToClipboard"; +import { Badge } from "@/components/ui/badge"; // Update Resource type to include site information type Resource = { @@ -49,7 +50,7 @@ type Resource = { domain: string; enabled: boolean; protected: boolean; - // mode: string; // "http", "tcp", "udp", "rdp", "vnc", "ssh" + mode: string; // "http", "tcp", "udp", "rdp", "vnc", "ssh" // Auth method fields sso?: boolean; password?: boolean; @@ -62,6 +63,7 @@ type Resource = { type SiteResource = { siteResourceId: number; name: string; + niceId: string; destination: string; mode: string; ssl: boolean; @@ -754,7 +756,13 @@ export default function MemberResourcesPortal({ -
+
+ + {resource.mode.toUpperCase()} + @@ -860,7 +868,13 @@ export default function MemberResourcesPortal({
-
+
+ + {siteResource.mode.toUpperCase()} +
@@ -876,24 +890,24 @@ export default function MemberResourcesPortal({ : - { - siteResource.mode - } - -
-
- - {t( - "memberPortalDestination" - )} - : - - - { - siteResource.destination - } + {siteResource.mode.toUpperCase()}
+ {siteResource.destination && ( +
+ + {t( + "memberPortalDestination" + )} + : + + + { + siteResource.destination + } + +
+ )} {siteResource.alias && (
@@ -942,45 +956,35 @@ export default function MemberResourcesPortal({ isLink={true} /> ) : siteResource.alias ? ( - <> - {/* Alias as primary */} -
-
- { - siteResource.alias - } -
- -
- {/* Destination as secondary */} -
- { - siteResource.destination - } -
- - ) : ( + duration: 2000 + }); + }} + > + + +
+ ) : siteResource.destination ? ( /* Destination as primary when no alias */
@@ -1011,6 +1015,37 @@ export default function MemberResourcesPortal({
+ ) : ( + /* niceId fallback when no alias and no destination */ +
+
+ { + siteResource.niceId + } +
+ +
)}