From 33cb28603cd04951b4eb863d91888579f1b8de7d Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 11 Jan 2024 13:53:46 +0000 Subject: [PATCH 1/4] fix(site): improve rendering of provisioner tags --- .../HealthPage/ProvisionerDaemonsPage.tsx | 47 +++++++++++++++---- site/src/testHelpers/entities.ts | 29 +++++++++++- 2 files changed, 67 insertions(+), 9 deletions(-) diff --git a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx index 6c797b9815f38..ed4f13f632089 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,32 @@ 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); + if (valid) { + return {k}; + } + return ( + }> + {k}: {v} + + ); +}; + export default ProvisionerDaemonsPage; diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 0e4d613b61fd2..4ef9b3f49540d 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: [ From bbc634d168b7c9bef572275f1a5a9cde948572a3 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 11 Jan 2024 14:11:48 +0000 Subject: [PATCH 2/4] fixup! fix(site): improve rendering of provisioner tags --- site/src/testHelpers/entities.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 4ef9b3f49540d..5751d7ccb2777 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -3149,10 +3149,10 @@ export const MockHealth: TypesGen.HealthcheckReport = { tags: { owner: "12345678-1234-1234-1234-12345678abcd", scope: "user", - tag_value: "value", - tag_true: "true", + tag_VALUE: "VALUE", + tag_TRUE: "TRUE", tag_1: "1", - tag_yes: "yes", + tag_YES: "YES", }, }, warnings: [], From 7bef19084a33512dc3977bfc3e8048e203d197d3 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 11 Jan 2024 17:16:20 +0000 Subject: [PATCH 3/4] Update site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx --- site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx index ed4f13f632089..1f49cad5db1f4 100644 --- a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx +++ b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx @@ -185,7 +185,11 @@ const parseBool = (s: string): { valid: boolean; value: boolean } => { const renderTag = (k: string, v: string) => { const { valid, value: boolValue } = parseBool(v); if (valid) { - return {k}; + return ( + + {k}: {v} + + ); } return ( }> From 1940c0de23ca49055835907cf8361ed2845d2a45 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 11 Jan 2024 17:30:51 +0000 Subject: [PATCH 4/4] fixup! Update site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx --- .../src/pages/HealthPage/ProvisionerDaemonsPage.tsx | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx index 1f49cad5db1f4..9c11ed0d706fe 100644 --- a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx +++ b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx @@ -184,18 +184,11 @@ const parseBool = (s: string): { valid: boolean; value: boolean } => { const renderTag = (k: string, v: string) => { const { valid, value: boolValue } = parseBool(v); + const kv = `${k}: ${v}`; if (valid) { - return ( - - {k}: {v} - - ); + return {kv}; } - return ( - }> - {k}: {v} - - ); + return }>{kv}; }; export default ProvisionerDaemonsPage;