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

Skip to content

Commit 4e14cc5

Browse files
refactor: Remove template UI from experimental (#5555)
1 parent c5128db commit 4e14cc5

File tree

5 files changed

+21
-68
lines changed

5 files changed

+21
-68
lines changed

site/src/pages/StarterTemplatePage/StarterTemplatePageView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
} from "components/PageHeader/PageHeader"
1111
import { FC } from "react"
1212
import { StarterTemplateContext } from "xServices/starterTemplates/starterTemplateXService"
13-
import EyeIcon from "@material-ui/icons/VisibilityOutlined"
13+
import ViewCodeIcon from "@material-ui/icons/OpenInNewOutlined"
1414
import PlusIcon from "@material-ui/icons/AddOutlined"
1515
import { AlertBanner } from "components/AlertBanner/AlertBanner"
1616
import { useTranslation } from "react-i18next"
@@ -50,7 +50,7 @@ export const StarterTemplatePageView: FC<StarterTemplatePageViewProps> = ({
5050
target="_blank"
5151
href={starterTemplate.url}
5252
rel="noreferrer"
53-
startIcon={<EyeIcon />}
53+
startIcon={<ViewCodeIcon />}
5454
>
5555
{t("actions.viewSourceCode")}
5656
</Button>

site/src/pages/TemplatesPage/EmptyTemplates.tsx

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Button from "@material-ui/core/Button"
22
import Link from "@material-ui/core/Link"
33
import { makeStyles } from "@material-ui/core/styles"
4-
import { Entitlements, TemplateExample } from "api/typesGenerated"
4+
import { TemplateExample } from "api/typesGenerated"
55
import { CodeExample } from "components/CodeExample/CodeExample"
66
import { Stack } from "components/Stack/Stack"
77
import { TableEmpty } from "components/TableEmpty/TableEmpty"
@@ -12,7 +12,7 @@ import { Link as RouterLink } from "react-router-dom"
1212
import { Permissions } from "xServices/auth/authXService"
1313

1414
// Those are from https://github.com/coder/coder/tree/main/examples/templates
15-
const featuredExamples = [
15+
const featuredExampleIds = [
1616
"docker",
1717
"kubernetes",
1818
"aws-linux",
@@ -22,19 +22,29 @@ const featuredExamples = [
2222
]
2323

2424
const findFeaturedExamples = (examples: TemplateExample[]) => {
25-
return examples.filter((example) => featuredExamples.includes(example.id))
25+
const featuredExamples: TemplateExample[] = []
26+
27+
// We loop the featuredExampleIds first to keep the order
28+
featuredExampleIds.forEach((exampleId) => {
29+
examples.forEach((example) => {
30+
if (exampleId === example.id) {
31+
featuredExamples.push(example)
32+
}
33+
})
34+
})
35+
36+
return featuredExamples
2637
}
2738

2839
export const EmptyTemplates: FC<{
2940
permissions: Permissions
3041
examples: TemplateExample[]
31-
entitlements: Entitlements
32-
}> = ({ permissions, examples, entitlements }) => {
42+
}> = ({ permissions, examples }) => {
3343
const styles = useStyles()
3444
const { t } = useTranslation("templatesPage")
3545
const featuredExamples = findFeaturedExamples(examples)
3646

37-
if (permissions.createTemplates && entitlements.experimental) {
47+
if (permissions.createTemplates) {
3848
return (
3949
<TableEmpty
4050
message={t("empty.message")}
@@ -81,33 +91,6 @@ export const EmptyTemplates: FC<{
8191
)
8292
}
8393

84-
if (permissions.createTemplates) {
85-
return (
86-
<TableEmpty
87-
className={styles.withImage}
88-
message={t("empty.message")}
89-
description={
90-
<>
91-
To create a workspace you need to have a template. You can{" "}
92-
<Link
93-
target="_blank"
94-
href="https://coder.com/docs/coder-oss/latest/templates"
95-
>
96-
create one from scratch
97-
</Link>{" "}
98-
or use a built-in template using the following Coder CLI command:
99-
</>
100-
}
101-
cta={<CodeExample code="coder templates init" />}
102-
image={
103-
<div className={styles.emptyImage}>
104-
<img src="/featured/templates.webp" alt="" />
105-
</div>
106-
}
107-
/>
108-
)
109-
}
110-
11194
return (
11295
<TableEmpty
11396
className={styles.withImage}

site/src/pages/TemplatesPage/TemplatesPage.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useMachine } from "@xstate/react"
2-
import { useEntitlements } from "hooks/useEntitlements"
32
import { useOrganizationId } from "hooks/useOrganizationId"
43
import { usePermissions } from "hooks/usePermissions"
54
import React from "react"
@@ -11,7 +10,6 @@ import { TemplatesPageView } from "./TemplatesPageView"
1110
export const TemplatesPage: React.FC = () => {
1211
const organizationId = useOrganizationId()
1312
const permissions = usePermissions()
14-
const entitlements = useEntitlements()
1513
const [templatesState] = useMachine(templatesMachine, {
1614
context: {
1715
organizationId,
@@ -24,10 +22,7 @@ export const TemplatesPage: React.FC = () => {
2422
<Helmet>
2523
<title>{pageTitle("Templates")}</title>
2624
</Helmet>
27-
<TemplatesPageView
28-
context={templatesState.context}
29-
entitlements={entitlements}
30-
/>
25+
<TemplatesPageView context={templatesState.context} />
3126
</>
3227
)
3328
}

site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { ComponentMeta, Story } from "@storybook/react"
22
import {
33
makeMockApiError,
4-
MockEntitlements,
54
MockOrganization,
65
MockPermissions,
76
MockTemplate,
@@ -21,7 +20,6 @@ const Template: Story<TemplatesPageViewProps> = (args) => (
2120

2221
export const WithTemplates = Template.bind({})
2322
WithTemplates.args = {
24-
entitlements: MockEntitlements,
2523
context: {
2624
organizationId: MockOrganization.id,
2725
permissions: MockPermissions,
@@ -60,22 +58,6 @@ WithTemplatesSmallViewPort.parameters = {
6058

6159
export const EmptyCanCreate = Template.bind({})
6260
EmptyCanCreate.args = {
63-
entitlements: MockEntitlements,
64-
context: {
65-
organizationId: MockOrganization.id,
66-
permissions: MockPermissions,
67-
error: undefined,
68-
templates: [],
69-
examples: [MockTemplateExample, MockTemplateExample2],
70-
},
71-
}
72-
73-
export const EmptyCanCreateExperimental = Template.bind({})
74-
EmptyCanCreateExperimental.args = {
75-
entitlements: {
76-
...MockEntitlements,
77-
experimental: true,
78-
},
7961
context: {
8062
organizationId: MockOrganization.id,
8163
permissions: MockPermissions,
@@ -87,7 +69,6 @@ EmptyCanCreateExperimental.args = {
8769

8870
export const EmptyCannotCreate = Template.bind({})
8971
EmptyCannotCreate.args = {
90-
entitlements: MockEntitlements,
9172
context: {
9273
organizationId: MockOrganization.id,
9374
permissions: {
@@ -102,7 +83,6 @@ EmptyCannotCreate.args = {
10283

10384
export const Error = Template.bind({})
10485
Error.args = {
105-
entitlements: MockEntitlements,
10686
context: {
10787
organizationId: MockOrganization.id,
10888
permissions: {

site/src/pages/TemplatesPage/TemplatesPageView.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import {
3939
} from "../../components/Tooltips/HelpTooltip/HelpTooltip"
4040
import { EmptyTemplates } from "./EmptyTemplates"
4141
import { TemplatesContext } from "xServices/templates/templatesXService"
42-
import { Entitlements } from "api/typesGenerated"
4342

4443
export const Language = {
4544
developerCount: (activeCount: number): string => {
@@ -74,12 +73,11 @@ const TemplateHelpTooltip: React.FC = () => {
7473

7574
export interface TemplatesPageViewProps {
7675
context: TemplatesContext
77-
entitlements: Entitlements
7876
}
7977

8078
export const TemplatesPageView: FC<
8179
React.PropsWithChildren<TemplatesPageViewProps>
82-
> = ({ context, entitlements }) => {
80+
> = ({ context }) => {
8381
const styles = useStyles()
8482
const navigate = useNavigate()
8583
const theme: Theme = useTheme()
@@ -91,9 +89,7 @@ export const TemplatesPageView: FC<
9189
<Margins>
9290
<PageHeader
9391
actions={
94-
<Maybe
95-
condition={entitlements.experimental && permissions.createTemplates}
96-
>
92+
<Maybe condition={permissions.createTemplates}>
9793
<Button component={RouterLink} to="/starter-templates">
9894
Starter templates
9995
</Button>
@@ -158,7 +154,6 @@ export const TemplatesPageView: FC<
158154
<EmptyTemplates
159155
permissions={permissions}
160156
examples={examples ?? []}
161-
entitlements={entitlements}
162157
/>
163158
</Cond>
164159

0 commit comments

Comments
 (0)