From a0457ba141a5fed91a633aa3eed5bb58931bef19 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Thu, 22 May 2025 15:59:42 +0000 Subject: [PATCH 1/2] fix: prevent layout shift when Select component dropdown appears --- site/src/index.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/site/src/index.css b/site/src/index.css index f3bf0918ddb3a..36f1c62954614 100644 --- a/site/src/index.css +++ b/site/src/index.css @@ -107,4 +107,9 @@ --removed-body-scroll-bar-size: 0 !important; margin-right: 0 !important; } + + /* Prevent layout shift when modals open by maintaining scrollbar width */ + html { + scrollbar-gutter: stable; + } } From 178ccca00fb23168c75c98619f353f7c2f87160a Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Fri, 23 May 2025 12:26:42 +0000 Subject: [PATCH 2/2] feat: show required badge instead of diagnostic --- .../DynamicParameter/DynamicParameter.tsx | 58 +++++++++++++------ 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index fc74a3a46a005..96727cd0c796f 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -89,9 +89,7 @@ export const DynamicParameter: FC = ({ /> )} - {parameter.diagnostics.length > 0 && ( - - )} + ); }; @@ -112,6 +110,9 @@ const ParameterLabel: FC = ({ const displayName = parameter.display_name ? parameter.display_name : parameter.name; + const hasRequiredDiagnostic = parameter.diagnostics?.find( + (d) => d.extra?.code === "required", + ); return (
@@ -186,6 +187,22 @@ const ParameterLabel: FC = ({ )} + {hasRequiredDiagnostic && ( + + + + + + Required + + + + + {hasRequiredDiagnostic.summary || "Required parameter"} + + + + )} {Boolean(parameter.description) && ( @@ -558,21 +575,26 @@ const ParameterDiagnostics: FC = ({ diagnostics, }) => { return ( -
- {diagnostics.map((diagnostic, index) => ( -
-

{diagnostic.summary}

- {diagnostic.detail &&

{diagnostic.detail}

} -
- ))} -
+ <> + {diagnostics.map((diagnostic, index) => { + if (diagnostic.extra?.code === "required") { + return null; + } + return ( +
+

{diagnostic.summary}

+ {diagnostic.detail &&

{diagnostic.detail}

} +
+ ); + })} + ); };