diff --git a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx index 6c797b9815f38..9c11ed0d706fe 100644 --- a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx +++ b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx @@ -1,4 +1,11 @@ -import { Header, HeaderTitle, HealthyDot, Main, Pill } from "./Content"; +import { + BooleanPill, + Header, + HeaderTitle, + HealthyDot, + Main, + Pill, +} from "./Content"; import { Helmet } from "react-helmet-async"; import { pageTitle } from "utils/page"; import { useTheme } from "@mui/material/styles"; @@ -116,13 +123,9 @@ export const ProvisionerDaemonsPage = () => { - {Object.keys(extraTags).map((k) => ( - - }> - {extraTags[k]} - - - ))} + {Object.keys(extraTags).map((k) => + renderTag(k, extraTags[k]), + )} @@ -163,4 +166,29 @@ export const ProvisionerDaemonsPage = () => { ); }; +const parseBool = (s: string): { valid: boolean; value: boolean } => { + switch (s.toLowerCase()) { + case "true": + case "yes": + case "1": + return { valid: true, value: true }; + case "false": + case "no": + case "0": + case "": + return { valid: true, value: false }; + default: + return { valid: false, value: false }; + } +}; + +const renderTag = (k: string, v: string) => { + const { valid, value: boolValue } = parseBool(v); + const kv = `${k}: ${v}`; + if (valid) { + return {kv}; + } + return }>{kv}; +}; + export default ProvisionerDaemonsPage; diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 0e4d613b61fd2..5751d7ccb2777 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -3129,7 +3129,30 @@ export const MockHealth: TypesGen.HealthcheckReport = { tags: { owner: "", scope: "organization", - custom_tag_name: "custom_tag_value", + tag_value: "value", + tag_true: "true", + tag_1: "1", + tag_yes: "yes", + }, + }, + warnings: [], + }, + { + provisioner_daemon: { + id: "00000000-0000-0000-000000000000", + created_at: "2024-01-04T15:53:03.21563Z", + last_seen_at: "2024-01-04T16:05:03.967551Z", + name: "user-scoped", + version: "v2.34-devel+abcd1234", + api_version: "1.0", + provisioners: ["echo", "terraform"], + tags: { + owner: "12345678-1234-1234-1234-12345678abcd", + scope: "user", + tag_VALUE: "VALUE", + tag_TRUE: "TRUE", + tag_1: "1", + tag_YES: "YES", }, }, warnings: [], @@ -3146,6 +3169,10 @@ export const MockHealth: TypesGen.HealthcheckReport = { tags: { owner: "", scope: "organization", + tag_string: "value", + tag_false: "false", + tag_0: "0", + tag_no: "no", }, }, warnings: [