Skip to content

Commit 5944b1c

Browse files
jaaydenhEmyrk
andauthored
chore: remove local storage based optin/optout (#18344)
This removes the opt-in and opt-out buttons for dynamic parameters on the create workspace page and the workspace parameters settings page. --------- Co-authored-by: Steven Masley <stevenmasley@gmail.com>
1 parent 4ff6c5e commit 5944b1c

File tree

13 files changed

+28
-214
lines changed

13 files changed

+28
-214
lines changed

coderd/parameters_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
249249
Value: "GO",
250250
},
251251
}
252+
request.EnableDynamicParameters = true
252253
})
253254
coderdtest.AwaitWorkspaceBuildJobCompleted(t, setup.client, wrk.LatestBuild.ID)
254255

site/e2e/helpers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,8 @@ export const updateWorkspace = async (
10111011
await page.getByTestId("workspace-update-button").click();
10121012
await page.getByTestId("confirm-button").click();
10131013

1014+
await page.waitForSelector('[data-testid="dialog"]', { state: "visible" });
1015+
10141016
await fillParameters(page, richParameters, buildParameters);
10151017
await page.getByRole("button", { name: /update parameters/i }).click();
10161018

site/src/modules/workspaces/DynamicParameter/useDynamicParametersOptOut.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions.tsx

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import {
2121
SettingsIcon,
2222
TrashIcon,
2323
} from "lucide-react";
24-
import { useDynamicParametersOptOut } from "modules/workspaces/DynamicParameter/useDynamicParametersOptOut";
2524
import { type FC, useEffect, useState } from "react";
2625
import { useMutation, useQuery, useQueryClient } from "react-query";
2726
import { Link as RouterLink } from "react-router-dom";
@@ -43,13 +42,6 @@ export const WorkspaceMoreActions: FC<WorkspaceMoreActionsProps> = ({
4342
}) => {
4443
const queryClient = useQueryClient();
4544

46-
const optOutQuery = useDynamicParametersOptOut({
47-
templateId: workspace.template_id,
48-
templateUsesClassicParameters:
49-
workspace.template_use_classic_parameter_flow,
50-
enabled: true,
51-
});
52-
5345
// Permissions
5446
const { data: permissions } = useQuery(workspacePermissions(workspace));
5547

@@ -59,7 +51,11 @@ export const WorkspaceMoreActions: FC<WorkspaceMoreActionsProps> = ({
5951
// Change version
6052
const [changeVersionDialogOpen, setChangeVersionDialogOpen] = useState(false);
6153
const changeVersionMutation = useMutation(
62-
changeVersion(workspace, queryClient, optOutQuery.data?.optedOut === false),
54+
changeVersion(
55+
workspace,
56+
queryClient,
57+
!workspace.template_use_classic_parameter_flow,
58+
),
6359
);
6460

6561
// Delete
@@ -151,7 +147,7 @@ export const WorkspaceMoreActions: FC<WorkspaceMoreActionsProps> = ({
151147
onClose={() => setIsDownloadDialogOpen(false)}
152148
/>
153149

154-
{optOutQuery.data?.optedOut ? (
150+
{workspace.template_use_classic_parameter_flow ? (
155151
<UpdateBuildParametersDialog
156152
missedParameters={
157153
changeVersionMutation.error instanceof MissingBuildParameters

site/src/modules/workspaces/WorkspaceUpdateDialogs.tsx

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@ import type {
66
WorkspaceBuild,
77
WorkspaceBuildParameter,
88
} from "api/typesGenerated";
9-
import { ErrorAlert } from "components/Alert/ErrorAlert";
109
import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog";
11-
import { Loader } from "components/Loader/Loader";
1210
import { MemoizedInlineMarkdown } from "components/Markdown/Markdown";
13-
import { useDynamicParametersOptOut } from "modules/workspaces/DynamicParameter/useDynamicParametersOptOut";
1411
import { UpdateBuildParametersDialog } from "modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog";
1512
import { UpdateBuildParametersDialogExperimental } from "modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental";
1613
import { type FC, useState } from "react";
@@ -55,17 +52,11 @@ export const useWorkspaceUpdate = ({
5552
setIsConfirmingUpdate(true);
5653
};
5754

58-
const optOutQuery = useDynamicParametersOptOut({
59-
templateId: workspace.template_id,
60-
templateUsesClassicParameters:
61-
workspace.template_use_classic_parameter_flow,
62-
enabled: true,
63-
});
64-
6555
const confirmUpdate = (buildParameters: WorkspaceBuildParameter[] = []) => {
6656
updateWorkspaceMutation.mutate({
6757
buildParameters,
68-
isDynamicParametersEnabled: optOutQuery.data?.optedOut === false,
58+
isDynamicParametersEnabled:
59+
!workspace.template_use_classic_parameter_flow,
6960
});
7061
setIsConfirmingUpdate(false);
7162
};
@@ -160,29 +151,13 @@ const MissingBuildParametersDialog: FC<MissingBuildParametersDialogProps> = ({
160151
error,
161152
...dialogProps
162153
}) => {
163-
const optOutQuery = useDynamicParametersOptOut({
164-
templateId: workspace.template_id,
165-
templateUsesClassicParameters:
166-
workspace.template_use_classic_parameter_flow,
167-
enabled: true,
168-
});
169-
170154
const missedParameters =
171155
error instanceof MissingBuildParameters ? error.parameters : [];
172156
const versionId =
173157
error instanceof MissingBuildParameters ? error.versionId : undefined;
174158
const isOpen = error instanceof MissingBuildParameters;
175159

176-
if (optOutQuery.isError) {
177-
return <ErrorAlert error={optOutQuery.error} />;
178-
}
179-
if (!optOutQuery.data) {
180-
return <Loader />;
181-
}
182-
183-
const shouldUseClassicDialog = optOutQuery.data?.optedOut;
184-
185-
return shouldUseClassicDialog ? (
160+
return workspace.template_use_classic_parameter_flow ? (
186161
<UpdateBuildParametersDialog
187162
missedParameters={missedParameters}
188163
open={isOpen}

site/src/pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter.tsx

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
import { templateByName } from "api/queries/templates";
22
import { ErrorAlert } from "components/Alert/ErrorAlert";
33
import { Loader } from "components/Loader/Loader";
4-
import {
5-
optOutKey,
6-
useDynamicParametersOptOut,
7-
} from "modules/workspaces/DynamicParameter/useDynamicParametersOptOut";
84
import type { FC } from "react";
95
import { useQuery } from "react-query";
106
import { useParams } from "react-router-dom";
117
import CreateWorkspacePage from "./CreateWorkspacePage";
128
import CreateWorkspacePageExperimental from "./CreateWorkspacePageExperimental";
13-
import { ExperimentalFormContext } from "./ExperimentalFormContext";
149

1510
const CreateWorkspaceExperimentRouter: FC = () => {
1611
const { organization: organizationName = "default", template: templateName } =
@@ -19,43 +14,21 @@ const CreateWorkspaceExperimentRouter: FC = () => {
1914
templateByName(organizationName, templateName),
2015
);
2116

22-
const optOutQuery = useDynamicParametersOptOut({
23-
templateId: templateQuery.data?.id,
24-
templateUsesClassicParameters:
25-
templateQuery.data?.use_classic_parameter_flow,
26-
enabled: !!templateQuery.data,
27-
});
28-
2917
if (templateQuery.isError) {
3018
return <ErrorAlert error={templateQuery.error} />;
3119
}
32-
if (optOutQuery.isError) {
33-
return <ErrorAlert error={optOutQuery.error} />;
34-
}
35-
if (!optOutQuery.data) {
20+
if (!templateQuery.data) {
3621
return <Loader />;
3722
}
3823

39-
const toggleOptedOut = () => {
40-
const key = optOutKey(optOutQuery.data?.templateId ?? "");
41-
const storedValue = localStorage.getItem(key);
42-
43-
const current = storedValue
44-
? storedValue === "true"
45-
: Boolean(templateQuery.data?.use_classic_parameter_flow);
46-
47-
localStorage.setItem(key, (!current).toString());
48-
optOutQuery.refetch();
49-
};
50-
5124
return (
52-
<ExperimentalFormContext.Provider value={{ toggleOptedOut }}>
53-
{optOutQuery.data.optedOut ? (
25+
<>
26+
{templateQuery.data?.use_classic_parameter_flow ? (
5427
<CreateWorkspacePage />
5528
) : (
5629
<CreateWorkspacePageExperimental />
5730
)}
58-
</ExperimentalFormContext.Provider>
31+
</>
5932
);
6033
};
6134

site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,7 @@ import { Switch } from "components/Switch/Switch";
2828
import { UserAutocomplete } from "components/UserAutocomplete/UserAutocomplete";
2929
import { type FormikContextType, useFormik } from "formik";
3030
import { generateWorkspaceName } from "modules/workspaces/generateWorkspaceName";
31-
import {
32-
type FC,
33-
useCallback,
34-
useContext,
35-
useEffect,
36-
useMemo,
37-
useState,
38-
} from "react";
31+
import { type FC, useCallback, useEffect, useMemo, useState } from "react";
3932
import {
4033
getFormHelpers,
4134
nameValidator,
@@ -51,7 +44,6 @@ import type {
5144
CreateWorkspaceMode,
5245
ExternalAuthPollingState,
5346
} from "./CreateWorkspacePage";
54-
import { ExperimentalFormContext } from "./ExperimentalFormContext";
5547
import { ExternalAuthButton } from "./ExternalAuthButton";
5648
import type { CreateWorkspacePermissions } from "./permissions";
5749

@@ -106,7 +98,6 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
10698
onSubmit,
10799
onCancel,
108100
}) => {
109-
const experimentalFormContext = useContext(ExperimentalFormContext);
110101
const [owner, setOwner] = useState(defaultOwner);
111102
const [suggestedName, setSuggestedName] = useState(() =>
112103
generateWorkspaceName(),
@@ -220,20 +211,9 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
220211
<Margins size="medium">
221212
<PageHeader
222213
actions={
223-
<>
224-
{experimentalFormContext && (
225-
<Button
226-
size="sm"
227-
variant="outline"
228-
onClick={experimentalFormContext.toggleOptedOut}
229-
>
230-
Try out the new workspace creation flow ✨
231-
</Button>
232-
)}
233-
<Button size="sm" variant="outline" onClick={onCancel}>
234-
Cancel
235-
</Button>
236-
</>
214+
<Button size="sm" variant="outline" onClick={onCancel}>
215+
Cancel
216+
</Button>
237217
}
238218
>
239219
<Stack direction="row">

site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626
} from "components/Tooltip/Tooltip";
2727
import { UserAutocomplete } from "components/UserAutocomplete/UserAutocomplete";
2828
import { type FormikContextType, useFormik } from "formik";
29-
import { ArrowLeft, CircleHelp, Undo2 } from "lucide-react";
29+
import { ArrowLeft, CircleHelp } from "lucide-react";
3030
import { useSyncFormParameters } from "modules/hooks/useSyncFormParameters";
3131
import { Diagnostics } from "modules/workspaces/DynamicParameter/DynamicParameter";
3232
import {
@@ -38,7 +38,6 @@ import { generateWorkspaceName } from "modules/workspaces/generateWorkspaceName"
3838
import {
3939
type FC,
4040
useCallback,
41-
useContext,
4241
useEffect,
4342
useId,
4443
useRef,
@@ -52,7 +51,6 @@ import type {
5251
CreateWorkspaceMode,
5352
ExternalAuthPollingState,
5453
} from "./CreateWorkspacePage";
55-
import { ExperimentalFormContext } from "./ExperimentalFormContext";
5654
import { ExternalAuthButton } from "./ExternalAuthButton";
5755
import type { CreateWorkspacePermissions } from "./permissions";
5856

@@ -112,7 +110,6 @@ export const CreateWorkspacePageViewExperimental: FC<
112110
owner,
113111
setOwner,
114112
}) => {
115-
const experimentalFormContext = useContext(ExperimentalFormContext);
116113
const [suggestedName, setSuggestedName] = useState(() =>
117114
generateWorkspaceName(),
118115
);
@@ -372,16 +369,6 @@ export const CreateWorkspacePageViewExperimental: FC<
372369
</Badge>
373370
)}
374371
</span>
375-
{experimentalFormContext && (
376-
<Button
377-
size="sm"
378-
variant="outline"
379-
onClick={experimentalFormContext.toggleOptedOut}
380-
>
381-
<Undo2 />
382-
Classic workspace creation
383-
</Button>
384-
)}
385372
</div>
386373
<span className="flex flex-row items-center gap-2">
387374
<h1 className="text-3xl font-semibold m-0">New workspace</h1>

site/src/pages/CreateWorkspacePage/ExperimentalFormContext.tsx

Lines changed: 0 additions & 5 deletions
This file was deleted.

site/src/pages/WorkspacePage/WorkspacePage.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ describe("WorkspacePage", () => {
305305

306306
// Check if the update was called using the values from the form
307307
await waitFor(() => {
308-
expect(API.updateWorkspace).toBeCalledWith(
308+
expect(API.updateWorkspace).toHaveBeenCalledWith(
309309
MockOutdatedWorkspace,
310310
[
311311
{

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy