diff --git a/apps/wing-console/console/app/demo/main.w b/apps/wing-console/console/app/demo/main.w index d6cb57b78a7..5726030f5c0 100644 --- a/apps/wing-console/console/app/demo/main.w +++ b/apps/wing-console/console/app/demo/main.w @@ -176,7 +176,14 @@ class WidgetService { "Total widgets", inflight () => { return this.countWidgets(); }, refreshRate: 5s, - ); + ) as "TotalWidgets"; + + // a link field displays a clickable link + new ui.Field( + "Widgets Link", + inflight () => { return "https://winglang.io"; }, + link: true, + ) as "WidgetsLink"; // a button lets you invoke any inflight function new ui.Button("Add widget", inflight () => { this.addWidget(); }); diff --git a/apps/wing-console/console/ui/src/ui/custom-resource-item.tsx b/apps/wing-console/console/ui/src/ui/custom-resource-item.tsx index dddeec33179..81f1dce8e56 100644 --- a/apps/wing-console/console/ui/src/ui/custom-resource-item.tsx +++ b/apps/wing-console/console/ui/src/ui/custom-resource-item.tsx @@ -42,6 +42,7 @@ export const CustomResourceUiItem = ({ item }: { item: UIComponent }) => { )} {uiComponent.kind === "button" && ( diff --git a/apps/wing-console/console/ui/src/ui/custom-resource-ui-field.tsx b/apps/wing-console/console/ui/src/ui/custom-resource-ui-field.tsx index 5534b87910d..29114c8f899 100644 --- a/apps/wing-console/console/ui/src/ui/custom-resource-ui-field.tsx +++ b/apps/wing-console/console/ui/src/ui/custom-resource-ui-field.tsx @@ -1,15 +1,18 @@ import { Attribute } from "@wingconsole/design-system"; +import { Link } from "@wingconsole/design-system"; import { trpc } from "../services/trpc.js"; export interface CustomResourceUiFieldItemProps { label: string; handlerPath: string; + link: boolean; } export const CustomResourceUiFieldItem = ({ label, handlerPath, + link, }: CustomResourceUiFieldItemProps) => { const field = trpc["uiField.get"].useQuery( { @@ -17,5 +20,14 @@ export const CustomResourceUiFieldItem = ({ }, { enabled: !!handlerPath }, ); - return ; + const fieldValue = field.data?.value ?? ""; + return ( + + {link && ( + + {fieldValue} + + )} + + ); };