Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 13086b4

Browse files
committed
Move template variables
1 parent b40c8e7 commit 13086b4

8 files changed

+58
-84
lines changed

site/src/AppRouter.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,10 @@ const CreateTemplatePage = lazy(
121121
() => import("./pages/CreateTemplatePage/CreateTemplatePage"),
122122
)
123123
const TemplateVariablesPage = lazy(
124-
() => import("./pages/TemplateVariablesPage/TemplateVariablesPage"),
124+
() =>
125+
import(
126+
"./pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage"
127+
),
125128
)
126129
const WorkspaceSettingsPage = lazy(
127130
() => import("./pages/WorkspaceSettingsPage/WorkspaceSettingsPage"),
@@ -173,9 +176,12 @@ export const AppRouter: FC = () => {
173176
path="permissions"
174177
element={<TemplatePermissionsPage />}
175178
/>
179+
<Route
180+
path="variables"
181+
element={<TemplateVariablesPage />}
182+
/>
176183
</Route>
177184

178-
<Route path="variables" element={<TemplateVariablesPage />} />
179185
<Route path="versions">
180186
<Route path=":version">
181187
<Route index element={<TemplateVersionPage />} />

site/src/pages/TemplateSettingsPage/Sidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export const Sidebar: React.FC<{ template: Template }> = ({ template }) => {
7171
Permissions
7272
</SidebarNavItem>
7373
<SidebarNavItem
74-
href="ssh-keys"
74+
href="variables"
7575
icon={<SidebarNavItemIcon icon={VariablesIcon} />}
7676
>
7777
Variables

site/src/pages/TemplateVariablesPage/TemplateVariablesPage.tsx renamed to site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import {
44
TemplateVersionVariable,
55
VariableValue,
66
} from "api/typesGenerated"
7+
import { displaySuccess } from "components/GlobalSnackbar/utils"
78
import { useOrganizationId } from "hooks/useOrganizationId"
89
import { FC } from "react"
910
import { Helmet } from "react-helmet-async"
1011
import { useTranslation } from "react-i18next"
1112
import { useNavigate, useParams } from "react-router-dom"
1213
import { templateVariablesMachine } from "xServices/template/templateVariablesXService"
13-
import { pageTitle } from "../../util/page"
14+
import { pageTitle } from "../../../util/page"
15+
import { useTemplateSettingsContext } from "../TemplateSettingsLayout"
1416
import { TemplateVariablesPageView } from "./TemplateVariablesPageView"
1517

1618
export const TemplateVariablesPage: FC = () => {
@@ -19,15 +21,16 @@ export const TemplateVariablesPage: FC = () => {
1921
template: string
2022
}
2123
const organizationId = useOrganizationId()
24+
const { template } = useTemplateSettingsContext()
2225
const navigate = useNavigate()
2326
const [state, send] = useMachine(templateVariablesMachine, {
2427
context: {
2528
organizationId,
26-
templateName,
29+
template,
2730
},
2831
actions: {
2932
onUpdateTemplate: () => {
30-
navigate(`/templates/${templateName}`)
33+
displaySuccess("Template updated successfully")
3134
},
3235
},
3336
})

site/src/pages/TemplateVariablesPage/TemplateVariablesPageView.tsx renamed to site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPageView.tsx

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import { TemplateVariablesForm } from "./TemplateVariablesForm"
1010
import { Stack } from "components/Stack/Stack"
1111
import { makeStyles } from "@material-ui/core/styles"
1212
import { useTranslation } from "react-i18next"
13-
import { FullPageHorizontalForm } from "components/FullPageForm/FullPageHorizontalForm"
1413
import { GoBackButton } from "components/GoBackButton/GoBackButton"
14+
import { PageHeader, PageHeaderTitle } from "components/PageHeader/PageHeader"
1515

1616
export interface TemplateVariablesPageViewProps {
1717
templateVersion?: TemplateVersion
@@ -48,45 +48,44 @@ export const TemplateVariablesPageView: FC<TemplateVariablesPageViewProps> = ({
4848

4949
return (
5050
<>
51-
<FullPageHorizontalForm title={t("title")} onCancel={onCancel}>
52-
{Boolean(errors.getTemplateDataError) && (
53-
<Stack className={classes.errorContainer}>
54-
<AlertBanner severity="error" error={errors.getTemplateDataError} />
55-
</Stack>
56-
)}
57-
{Boolean(errors.updateTemplateError) && (
58-
<Stack className={classes.errorContainer}>
59-
<AlertBanner severity="error" error={errors.updateTemplateError} />
60-
</Stack>
61-
)}
62-
{Boolean(errors.jobError) && (
63-
<Stack className={classes.errorContainer}>
64-
<AlertBanner severity="error" text={errors.jobError} />
65-
</Stack>
66-
)}
67-
{isLoading && <Loader />}
68-
{templateVersion &&
69-
templateVariables &&
70-
templateVariables.length > 0 && (
71-
<TemplateVariablesForm
72-
initialTouched={initialTouched}
73-
isSubmitting={isSubmitting}
74-
templateVersion={templateVersion}
75-
templateVariables={templateVariables}
76-
onSubmit={onSubmit}
77-
onCancel={onCancel}
78-
error={errors.updateTemplateError}
79-
/>
80-
)}
81-
{templateVariables && templateVariables.length === 0 && (
82-
<div>
83-
<AlertBanner severity="info" text={t("unusedVariablesNotice")} />
84-
<div className={classes.goBackSection}>
85-
<GoBackButton onClick={onCancel} />
86-
</div>
51+
<PageHeader className={classes.pageHeader}>
52+
<PageHeaderTitle>{t("title")}</PageHeaderTitle>
53+
</PageHeader>
54+
{Boolean(errors.getTemplateDataError) && (
55+
<Stack className={classes.errorContainer}>
56+
<AlertBanner severity="error" error={errors.getTemplateDataError} />
57+
</Stack>
58+
)}
59+
{Boolean(errors.updateTemplateError) && (
60+
<Stack className={classes.errorContainer}>
61+
<AlertBanner severity="error" error={errors.updateTemplateError} />
62+
</Stack>
63+
)}
64+
{Boolean(errors.jobError) && (
65+
<Stack className={classes.errorContainer}>
66+
<AlertBanner severity="error" text={errors.jobError} />
67+
</Stack>
68+
)}
69+
{isLoading && <Loader />}
70+
{templateVersion && templateVariables && templateVariables.length > 0 && (
71+
<TemplateVariablesForm
72+
initialTouched={initialTouched}
73+
isSubmitting={isSubmitting}
74+
templateVersion={templateVersion}
75+
templateVariables={templateVariables}
76+
onSubmit={onSubmit}
77+
onCancel={onCancel}
78+
error={errors.updateTemplateError}
79+
/>
80+
)}
81+
{templateVariables && templateVariables.length === 0 && (
82+
<div>
83+
<AlertBanner severity="info" text={t("unusedVariablesNotice")} />
84+
<div className={classes.goBackSection}>
85+
<GoBackButton onClick={onCancel} />
8786
</div>
88-
)}
89-
</FullPageHorizontalForm>
87+
</div>
88+
)}
9089
</>
9190
)
9291
}
@@ -100,4 +99,7 @@ const useStyles = makeStyles((theme) => ({
10099
width: "100%",
101100
marginTop: 32,
102101
},
102+
pageHeader: {
103+
paddingTop: 0,
104+
},
103105
}))

site/src/xServices/template/templateVariablesXService.ts

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {
22
createTemplateVersion,
3-
getTemplateByName,
43
getTemplateVersion,
54
getTemplateVersionVariables,
65
updateActiveTemplateVersion,
@@ -17,9 +16,8 @@ import { Message } from "api/types"
1716

1817
type TemplateVariablesContext = {
1918
organizationId: string
20-
templateName: string
2119

22-
template?: Template
20+
template: Template
2321
activeTemplateVersion?: TemplateVersion
2422
templateVariables?: TemplateVersionVariable[]
2523

@@ -46,9 +44,6 @@ export const templateVariablesMachine = createMachine(
4644
context: {} as TemplateVariablesContext,
4745
events: {} as UpdateTemplateEvent,
4846
services: {} as {
49-
getTemplate: {
50-
data: Template
51-
}
5247
getActiveTemplateVersion: {
5348
data: TemplateVersion
5449
}
@@ -66,24 +61,8 @@ export const templateVariablesMachine = createMachine(
6661
}
6762
},
6863
},
69-
initial: "gettingTemplate",
64+
initial: "gettingActiveTemplateVersion",
7065
states: {
71-
gettingTemplate: {
72-
entry: "clearGetTemplateDataError",
73-
invoke: {
74-
src: "getTemplate",
75-
onDone: [
76-
{
77-
actions: ["assignTemplate"],
78-
target: "gettingActiveTemplateVersion",
79-
},
80-
],
81-
onError: {
82-
actions: ["assignGetTemplateDataError"],
83-
target: "error",
84-
},
85-
},
86-
},
8766
gettingActiveTemplateVersion: {
8867
entry: "clearGetTemplateDataError",
8968
invoke: {
@@ -183,19 +162,10 @@ export const templateVariablesMachine = createMachine(
183162
},
184163
{
185164
services: {
186-
getTemplate: ({ organizationId, templateName }) => {
187-
return getTemplateByName(organizationId, templateName)
188-
},
189165
getActiveTemplateVersion: ({ template }) => {
190-
if (!template) {
191-
throw new Error("No template selected")
192-
}
193166
return getTemplateVersion(template.active_version_id)
194167
},
195168
getTemplateVariables: ({ template }) => {
196-
if (!template) {
197-
throw new Error("No template selected")
198-
}
199169
return getTemplateVersionVariables(template.active_version_id)
200170
},
201171
createNewTemplateVersion: ({
@@ -224,10 +194,6 @@ export const templateVariablesMachine = createMachine(
224194
return newTemplateVersion
225195
},
226196
updateTemplate: ({ template, newTemplateVersion }) => {
227-
if (!template) {
228-
throw new Error("No template selected")
229-
}
230-
231197
if (!newTemplateVersion) {
232198
throw new Error("New template version is undefined")
233199
}
@@ -238,9 +204,6 @@ export const templateVariablesMachine = createMachine(
238204
},
239205
},
240206
actions: {
241-
assignTemplate: assign({
242-
template: (_, event) => event.data,
243-
}),
244207
assignActiveTemplateVersion: assign({
245208
activeTemplateVersion: (_, event) => event.data,
246209
}),

0 commit comments

Comments
 (0)