Skip to content

Commit ff77fe9

Browse files
committed
chore: hide create workspace button on template header
1 parent d5033d1 commit ff77fe9

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

site/src/pages/TemplatePage/TemplateLayout.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { API } from "api/api";
2+
import { organizationsPermissions } from "api/queries/organizations";
23
import type { AuthorizationRequest } from "api/typesGenerated";
34
import { ErrorAlert } from "components/Alert/ErrorAlert";
45
import { Loader } from "components/Loader/Loader";
@@ -77,6 +78,9 @@ export const TemplateLayout: FC<PropsWithChildren> = ({
7778
queryKey: ["template", templateName],
7879
queryFn: () => fetchTemplate(organizationName, templateName),
7980
});
81+
const orgPermissionsQuery = useQuery(
82+
organizationsPermissions([organizationName]),
83+
);
8084
const location = useLocation();
8185
const paths = location.pathname.split("/");
8286
const activeTab = paths.at(-1) === templateName ? "summary" : paths.at(-1)!;
@@ -85,24 +89,27 @@ export const TemplateLayout: FC<PropsWithChildren> = ({
8589
const shouldShowInsights =
8690
data?.permissions?.canUpdateTemplate || data?.permissions?.canReadInsights;
8791

88-
if (error) {
92+
if (error || orgPermissionsQuery.error) {
8993
return (
9094
<div css={{ margin: 16 }}>
9195
<ErrorAlert error={error} />
9296
</div>
9397
);
9498
}
9599

96-
if (isLoading || !data) {
100+
if (isLoading || !data || !orgPermissionsQuery.data) {
97101
return <Loader />;
98102
}
99103

104+
const orgPermissions = orgPermissionsQuery.data?.[organizationName];
105+
100106
return (
101107
<>
102108
<TemplatePageHeader
103109
template={data.template}
104110
activeVersion={data.activeVersion}
105111
permissions={data.permissions}
112+
orgPermissions={orgPermissions}
106113
onDeleteTemplate={() => {
107114
navigate("/templates");
108115
}}

site/src/pages/TemplatePage/TemplatePageHeader.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import {
3131
import { Pill } from "components/Pill/Pill";
3232
import { Stack } from "components/Stack/Stack";
3333
import { linkToTemplate, useLinks } from "modules/navigation";
34+
import type { OrganizationPermissions } from "modules/permissions/organizations";
3435
import type { FC } from "react";
3536
import { useQuery } from "react-query";
3637
import { Link as RouterLink, useNavigate } from "react-router-dom";
@@ -158,13 +159,15 @@ export type TemplatePageHeaderProps = {
158159
template: Template;
159160
activeVersion: TemplateVersion;
160161
permissions: AuthorizationResponse;
162+
orgPermissions: OrganizationPermissions;
161163
onDeleteTemplate: () => void;
162164
};
163165

164166
export const TemplatePageHeader: FC<TemplatePageHeaderProps> = ({
165167
template,
166168
activeVersion,
167169
permissions,
170+
orgPermissions,
168171
onDeleteTemplate,
169172
}) => {
170173
const getLink = useLinks();
@@ -177,7 +180,7 @@ export const TemplatePageHeader: FC<TemplatePageHeaderProps> = ({
177180
<PageHeader
178181
actions={
179182
<>
180-
{!template.deprecated && (
183+
{!template.deprecated && orgPermissions.createWorkspaces && (
181184
<Button
182185
variant="contained"
183186
startIcon={<AddIcon />}

0 commit comments

Comments
 (0)