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

Skip to content

Commit 43c8faa

Browse files
committed
Add templates link
1 parent 80a2989 commit 43c8faa

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

site/src/hooks/useEntitlements.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { useSelector } from "@xstate/react"
2+
import { Entitlements } from "api/typesGenerated"
3+
import { useContext } from "react"
4+
import { XServiceContext } from "xServices/StateContext"
5+
6+
export const useEntitlements = (): Entitlements => {
7+
const xServices = useContext(XServiceContext)
8+
const entitlements = useSelector(
9+
xServices.entitlementsXService,
10+
(state) => state.context.entitlements,
11+
)
12+
13+
return entitlements
14+
}

site/src/pages/TemplatesPage/TemplatesPageView.tsx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import Button from "@material-ui/core/Button"
12
import Link from "@material-ui/core/Link"
23
import { makeStyles, Theme } from "@material-ui/core/styles"
34
import Table from "@material-ui/core/Table"
@@ -7,14 +8,16 @@ import TableContainer from "@material-ui/core/TableContainer"
78
import TableHead from "@material-ui/core/TableHead"
89
import TableRow from "@material-ui/core/TableRow"
910
import KeyboardArrowRight from "@material-ui/icons/KeyboardArrowRight"
11+
import AddIcon from "@material-ui/icons/AddOutlined"
1012
import useTheme from "@material-ui/styles/useTheme"
1113
import { AlertBanner } from "components/AlertBanner/AlertBanner"
1214
import { ChooseOne, Cond } from "components/Conditionals/ChooseOne"
1315
import { Maybe } from "components/Conditionals/Maybe"
1416
import { TableEmpty } from "components/TableEmpty/TableEmpty"
17+
import { useEntitlements } from "hooks/useEntitlements"
1518
import { FC } from "react"
1619
import { useTranslation } from "react-i18next"
17-
import { useNavigate } from "react-router-dom"
20+
import { useNavigate, Link as RouterLink } from "react-router-dom"
1821
import { createDayString } from "util/createDayString"
1922
import {
2023
formatTemplateBuildTime,
@@ -39,6 +42,7 @@ import {
3942
HelpTooltipText,
4043
HelpTooltipTitle,
4144
} from "../../components/Tooltips/HelpTooltip/HelpTooltip"
45+
import { usePermissions } from "hooks/usePermissions"
4246

4347
export const Language = {
4448
developerCount: (activeCount: number): string => {
@@ -106,10 +110,25 @@ export const TemplatesPageView: FC<
106110
!props.getOrganizationsError &&
107111
!props.getTemplatesError &&
108112
!props.templates?.length
113+
const entitlements = useEntitlements()
114+
const permissions = usePermissions()
109115

110116
return (
111117
<Margins>
112-
<PageHeader>
118+
<PageHeader
119+
actions={
120+
<Maybe
121+
condition={entitlements.experimental && permissions.createTemplates}
122+
>
123+
<Button component={RouterLink} to="/starter-templates">
124+
Starter templates
125+
</Button>
126+
<Button startIcon={<AddIcon />} component={RouterLink} to="new">
127+
Add template
128+
</Button>
129+
</Maybe>
130+
}
131+
>
113132
<PageHeaderTitle>
114133
<Stack spacing={1} direction="row" alignItems="center">
115134
Templates

0 commit comments

Comments
 (0)