From 23d14233bfbbe8e4a0d40ac6092dea49eb020890 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Tue, 27 May 2025 11:02:54 -0500 Subject: [PATCH] chore: hide classic workspace checkbox when experiment is not enabled (#18061) resolves coder/preview#137 This hides the `Use classic workspace creation form` checkbox on the template settings page if the dynamic-parameters experiment is not enabled Add mention of "workspace parameters settings form" in the checkbox description as this is also affected. --- .../TemplateSettingsForm.tsx | 61 ++++++++++--------- .../TemplateSettingsPage.tsx | 3 + .../TemplateSettingsPageView.tsx | 3 + 3 files changed, 39 insertions(+), 28 deletions(-) diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx index 71adb89e14..8ba0e7b948 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx @@ -63,6 +63,7 @@ export interface TemplateSettingsForm { accessControlEnabled: boolean; advancedSchedulingEnabled: boolean; portSharingControlsEnabled: boolean; + isDynamicParametersEnabled: boolean; } export const TemplateSettingsForm: FC = ({ @@ -75,6 +76,7 @@ export const TemplateSettingsForm: FC = ({ accessControlEnabled, advancedSchedulingEnabled, portSharingControlsEnabled, + isDynamicParametersEnabled, }) => { const form = useFormik({ initialValues: { @@ -224,34 +226,37 @@ export const TemplateSettingsForm: FC = ({ } /> - - } - label={ - - Use classic workspace creation form - - - Show the original workspace creation form without dynamic - parameters or live updates. Recommended if your provisioners - aren't updated or the new form causes issues.{" "} - - Users can always manually switch experiences in the - workspace creation form. - - - - - } - /> + {isDynamicParametersEnabled && ( + + } + label={ + + Use classic workspace creation form + + + Show the original workspace creation form and workspace + parameters settings form without dynamic parameters or + live updates. Recommended if your provisioners aren't + updated or the new form causes issues.{" "} + + Users can always manually switch experiences in the + workspace creation form. + + + + + } + /> + )} diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx index be5af252ae..e27f0b75c8 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx @@ -14,6 +14,8 @@ import { useTemplateSettings } from "../TemplateSettingsLayout"; import { TemplateSettingsPageView } from "./TemplateSettingsPageView"; const TemplateSettingsPage: FC = () => { + const { experiments } = useDashboard(); + const isDynamicParametersEnabled = experiments.includes("dynamic-parameters"); const { template: templateName } = useParams() as { template: string }; const navigate = useNavigate(); const getLink = useLinks(); @@ -79,6 +81,7 @@ const TemplateSettingsPage: FC = () => { accessControlEnabled={accessControlEnabled} advancedSchedulingEnabled={advancedSchedulingEnabled} sharedPortControlsEnabled={sharedPortControlsEnabled} + isDynamicParametersEnabled={isDynamicParametersEnabled} /> ); diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx index e267d25ce5..059999d27b 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx @@ -15,6 +15,7 @@ interface TemplateSettingsPageViewProps { accessControlEnabled: boolean; advancedSchedulingEnabled: boolean; sharedPortControlsEnabled: boolean; + isDynamicParametersEnabled: boolean; } export const TemplateSettingsPageView: FC = ({ @@ -27,6 +28,7 @@ export const TemplateSettingsPageView: FC = ({ accessControlEnabled, advancedSchedulingEnabled, sharedPortControlsEnabled, + isDynamicParametersEnabled, }) => { return ( <> @@ -44,6 +46,7 @@ export const TemplateSettingsPageView: FC = ({ accessControlEnabled={accessControlEnabled} advancedSchedulingEnabled={advancedSchedulingEnabled} portSharingControlsEnabled={sharedPortControlsEnabled} + isDynamicParametersEnabled={isDynamicParametersEnabled} /> );