From 9491b23b9d05000e532ca19a113b2a05376ab5b0 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Wed, 16 Apr 2025 21:31:54 +0000 Subject: [PATCH 1/7] pls hold --- .../CreateWorkspaceExperimentRouter.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx index 36cd921e28000..e195d8b5f0df7 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx @@ -1,13 +1,25 @@ import { useDashboard } from "modules/dashboard/useDashboard"; -import type { FC } from "react"; +import { createContext, type FC } from "react"; import CreateWorkspacePage from "./CreateWorkspacePage"; import CreateWorkspacePageExperimental from "./CreateWorkspacePageExperimental"; +import { useParams } from "react-router-dom"; +import { useQuery } from "react-query"; +import { templateByName } from "api/queries/templates"; const CreateWorkspaceExperimentRouter: FC = () => { const { experiments } = useDashboard(); - const dynamicParametersEnabled = experiments.includes("dynamic-parameters"); + const { organization: organizationName = "default", template: templateName } = + useParams() as { organization?: string; template: string }; + const templateQuery = useQuery( + templateByName(organizationName, templateName), + ); + + const something = JSON.parse( + localStorage.getItem(`parameters.${templateQuery.data?.id}.optOut`) ?? "", + ); + if (dynamicParametersEnabled) { return ; } @@ -16,3 +28,5 @@ const CreateWorkspaceExperimentRouter: FC = () => { }; export default CreateWorkspaceExperimentRouter; + +const CreateWorkspaceProvider = createContext(undefined); From 063538af2b9c51dbb4c7f55ebd8dc2590143b071 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Thu, 17 Apr 2025 19:40:34 +0000 Subject: [PATCH 2/7] not now pls --- dogfood/coder/main.tf | 6 ++-- .../CreateWorkspaceExperimentRouter.tsx | 32 +++++++++++++++---- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/dogfood/coder/main.tf b/dogfood/coder/main.tf index 5bf9e682bbf43..ddd182ad4a5c4 100644 --- a/dogfood/coder/main.tf +++ b/dogfood/coder/main.tf @@ -42,10 +42,10 @@ data "coder_parameter" "image_type" { type = "string" name = "Coder Image" default = "codercom/oss-dogfood:latest" - description = "The Docker image used to run your workspace. Choose between nix and non-nix images." + description = "The Docker image used to run your workspace." option { - icon = "/icon/coder.svg" - name = "Dogfood (Default)" + icon = "/icon/ubuntu.svg" + name = "Dogfood Ubuntu" value = "codercom/oss-dogfood:latest" } option { diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx index e195d8b5f0df7..7dd2d233d3516 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx @@ -5,6 +5,8 @@ import CreateWorkspacePageExperimental from "./CreateWorkspacePageExperimental"; import { useParams } from "react-router-dom"; import { useQuery } from "react-query"; import { templateByName } from "api/queries/templates"; +import { Loader } from "components/Loader/Loader"; +import { ErrorAlert } from "components/Alert/ErrorAlert"; const CreateWorkspaceExperimentRouter: FC = () => { const { experiments } = useDashboard(); @@ -13,15 +15,31 @@ const CreateWorkspaceExperimentRouter: FC = () => { const { organization: organizationName = "default", template: templateName } = useParams() as { organization?: string; template: string }; const templateQuery = useQuery( - templateByName(organizationName, templateName), - ); - - const something = JSON.parse( - localStorage.getItem(`parameters.${templateQuery.data?.id}.optOut`) ?? "", + dynamicParametersEnabled + ? templateByName(organizationName, templateName) + : { enabled: false }, ); if (dynamicParametersEnabled) { - return ; + if (templateQuery.isLoading) { + return ; + } + + if (!templateQuery.data) { + return ; + } + + const hasOptedOut = + localStorage.Item(`parameters.${templateQuery.data.id}.optOut`) == "true"; + return ( + + {hasOptedOut ? ( + + ) : ( + + )} + + ); } return ; @@ -29,4 +47,4 @@ const CreateWorkspaceExperimentRouter: FC = () => { export default CreateWorkspaceExperimentRouter; -const CreateWorkspaceProvider = createContext(undefined); +const CreateWorkspaceContext = createContext<{}>({}); From 7efa2b093892634520441079f650867001c69521 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Thu, 17 Apr 2025 21:30:58 +0000 Subject: [PATCH 3/7] yay --- .../CreateWorkspaceExperimentRouter.tsx | 26 ++++++++++++++----- .../CreateWorkspacePageViewExperimental.tsx | 2 +- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx index 7dd2d233d3516..dc5024ba8cba7 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx @@ -1,5 +1,5 @@ import { useDashboard } from "modules/dashboard/useDashboard"; -import { createContext, type FC } from "react"; +import { createContext, type FC, useState } from "react"; import CreateWorkspacePage from "./CreateWorkspacePage"; import CreateWorkspacePageExperimental from "./CreateWorkspacePageExperimental"; import { useParams } from "react-router-dom"; @@ -24,16 +24,26 @@ const CreateWorkspaceExperimentRouter: FC = () => { if (templateQuery.isLoading) { return ; } - if (!templateQuery.data) { return ; } - const hasOptedOut = - localStorage.Item(`parameters.${templateQuery.data.id}.optOut`) == "true"; + const optOut = `parameters.${templateQuery.data.id}.optOut`; + const [optedOut, setOptedOut] = useState( + localStorage.getItem(optOut) == "true", + ); + + const toggleOptedOut = () => { + setOptedOut((prev) => { + const next = !prev; + localStorage.setItem(optOut, next.toString()); + return next; + }); + }; + return ( - - {hasOptedOut ? ( + + {optedOut ? ( ) : ( @@ -47,4 +57,6 @@ const CreateWorkspaceExperimentRouter: FC = () => { export default CreateWorkspaceExperimentRouter; -const CreateWorkspaceContext = createContext<{}>({}); +const CreateWorkspaceContext = createContext< + { toggleOptedOut: () => void } | undefined +>(undefined); diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx index 1e0fbbf2281ff..6f561396270d7 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx @@ -252,7 +252,7 @@ export const CreateWorkspacePageViewExperimental: FC< return ( <> -
+