From 360159b077739fc1f4f40d75bbe470b84d9f1eae Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Fri, 20 Sep 2024 21:08:42 +0000 Subject: [PATCH 1/2] chore: consolidate on `showOrganizations` usage --- site/src/modules/dashboard/Navbar/Navbar.tsx | 5 ++- .../ImportStarterTemplateView.tsx | 9 ++---- .../CreateTemplatePage/UploadTemplateView.tsx | 9 ++---- .../CreateTemplatesGalleryPage.tsx | 5 ++- .../DeploySettingsLayout.tsx | 6 ++-- .../TemplatesPageView.stories.tsx | 1 - .../pages/TemplatesPage/TemplatesPageView.tsx | 32 ++++++++----------- site/src/pages/UsersPage/UsersLayout.tsx | 6 ++-- site/src/pages/UsersPage/UsersPage.tsx | 7 ++-- 9 files changed, 29 insertions(+), 51 deletions(-) diff --git a/site/src/modules/dashboard/Navbar/Navbar.tsx b/site/src/modules/dashboard/Navbar/Navbar.tsx index d74b256e75356..5a3e86832ee43 100644 --- a/site/src/modules/dashboard/Navbar/Navbar.tsx +++ b/site/src/modules/dashboard/Navbar/Navbar.tsx @@ -12,15 +12,14 @@ export const Navbar: FC = () => { const { metadata } = useEmbeddedMetadata(); const buildInfoQuery = useQuery(buildInfo(metadata["build-info"])); - const { appearance, experiments } = useDashboard(); + const { appearance, showOrganizations } = useDashboard(); const { user: me, permissions, signOut } = useAuthenticated(); const featureVisibility = useFeatureVisibility(); const canViewAuditLog = featureVisibility.audit_log && Boolean(permissions.viewAnyAuditLog); const canViewDeployment = Boolean(permissions.viewDeploymentValues); const canViewOrganizations = - Boolean(permissions.editAnyOrganization) && - experiments.includes("multi-organization"); + Boolean(permissions.editAnyOrganization) && showOrganizations; const canViewAllUsers = Boolean(permissions.viewAllUsers); const proxyContextValue = useProxy(); const canViewHealth = canViewDeployment; diff --git a/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx b/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx index 1d10602cd5208..e1dcdbcf98cbe 100644 --- a/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx +++ b/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx @@ -27,18 +27,13 @@ export const ImportStarterTemplateView: FC = ({ isCreating, }) => { const navigate = useNavigate(); - const { entitlements, experiments } = useDashboard(); - const { multiple_organizations: organizationsEnabled } = - useFeatureVisibility(); + const { entitlements, showOrganizations } = useDashboard(); const [searchParams] = useSearchParams(); const templateExamplesQuery = useQuery(templateExamples()); const templateExample = templateExamplesQuery.data?.find( (e) => e.id === searchParams.get("exampleId")!, ); - const showOrganizationPicker = - experiments.includes("multi-organization") && organizationsEnabled; - const isLoading = templateExamplesQuery.isLoading; const loadingError = templateExamplesQuery.error; @@ -77,7 +72,7 @@ export const ImportStarterTemplateView: FC = ({ onCancel={() => navigate(-1)} jobError={isJobError ? error.job.error : undefined} logs={templateVersionLogsQuery.data} - showOrganizationPicker={showOrganizationPicker} + showOrganizationPicker={showOrganizations} onSubmit={async (formData) => { await onCreateTemplate({ organization: formData.organization, diff --git a/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx b/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx index ca239379273c1..a51efd9e98057 100644 --- a/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx +++ b/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx @@ -21,14 +21,9 @@ export const UploadTemplateView: FC = ({ error, }) => { const navigate = useNavigate(); - const { entitlements, experiments } = useDashboard(); - const { multiple_organizations: organizationsEnabled } = - useFeatureVisibility(); + const { entitlements, showOrganizations } = useDashboard(); const formPermissions = getFormPermissions(entitlements); - const showOrganizationPicker = - experiments.includes("multi-organization") && organizationsEnabled; - const uploadFileMutation = useMutation(uploadFile()); const uploadedFile = uploadFileMutation.data; @@ -61,7 +56,7 @@ export const UploadTemplateView: FC = ({ onRemove: uploadFileMutation.reset, file: uploadFileMutation.variables, }} - showOrganizationPicker={showOrganizationPicker} + showOrganizationPicker={showOrganizations} onSubmit={async (formData) => { await onCreateTemplate({ organization: formData.organization, diff --git a/site/src/pages/CreateTemplatesGalleryPage/CreateTemplatesGalleryPage.tsx b/site/src/pages/CreateTemplatesGalleryPage/CreateTemplatesGalleryPage.tsx index 86200a3378c6b..5f4c42d700a20 100644 --- a/site/src/pages/CreateTemplatesGalleryPage/CreateTemplatesGalleryPage.tsx +++ b/site/src/pages/CreateTemplatesGalleryPage/CreateTemplatesGalleryPage.tsx @@ -10,20 +10,19 @@ import { CreateTemplatesPageView } from "./CreateTemplatesPageView"; import { StarterTemplatesPageView } from "./StarterTemplatesPageView"; const CreateTemplatesGalleryPage: FC = () => { - const { experiments } = useDashboard(); + const { showOrganizations } = useDashboard(); const templateExamplesQuery = useQuery(templateExamples()); const starterTemplatesByTag = templateExamplesQuery.data ? // Currently, the scratch template should not be displayed on the starter templates page. getTemplatesByTag(removeScratchExample(templateExamplesQuery.data)) : undefined; - const multiOrgExperimentEnabled = experiments.includes("multi-organization"); return ( <> {pageTitle("Create a Template")} - {multiOrgExperimentEnabled ? ( + {showOrganizations ? ( { }; export const DeploySettingsLayout: FC = () => { - const { experiments } = useDashboard(); + const { showOrganizations } = useDashboard(); - const canViewOrganizations = experiments.includes("multi-organization"); - - return canViewOrganizations ? ( + return showOrganizations ? ( ) : ( diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx index f07ad24df133c..e8b32bffb4259 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx @@ -12,7 +12,6 @@ import { TemplatesPageView } from "./TemplatesPageView"; const meta: Meta = { title: "pages/TemplatesPage", - decorators: [withDashboardProvider], parameters: { chromatic: chromaticWithTablet }, component: TemplatesPageView, args: { diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx index e0c96b4b675ca..8e6e8388fd269 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx @@ -193,31 +193,27 @@ export const TemplatesPageView: FC = ({ examples, templates, }) => { - const { experiments } = useDashboard(); const isLoading = !templates; const isEmpty = templates && templates.length === 0; const navigate = useNavigate(); - const multiOrgExperimentEnabled = experiments.includes("multi-organization"); - const createTemplateAction = () => { - return multiOrgExperimentEnabled ? ( - - ) : ( - - ); - }; + const createTemplateAction = showOrganizations ? ( + + ) : ( + + ); return ( - + Templates diff --git a/site/src/pages/UsersPage/UsersLayout.tsx b/site/src/pages/UsersPage/UsersLayout.tsx index 436bf97b0554a..1c4a9fd0b16b3 100644 --- a/site/src/pages/UsersPage/UsersLayout.tsx +++ b/site/src/pages/UsersPage/UsersLayout.tsx @@ -19,14 +19,12 @@ import { export const UsersLayout: FC = () => { const { permissions } = useAuthenticated(); - const { experiments } = useDashboard(); + const { showOrganizations } = useDashboard(); const navigate = useNavigate(); const feats = useFeatureVisibility(); const location = useLocation(); const activeTab = location.pathname.endsWith("groups") ? "groups" : "users"; - const canViewOrganizations = experiments.includes("multi-organization"); - return ( <> @@ -59,7 +57,7 @@ export const UsersLayout: FC = () => { - {!canViewOrganizations && ( + {!showOrganizations && ( { const navigate = useNavigate(); const location = useLocation(); const searchParamsResult = useSearchParams(); - const { entitlements, experiments } = useDashboard(); + const { entitlements, showOrganizations } = useDashboard(); const [searchParams] = searchParamsResult; const groupsByUserIdQuery = useQuery(groupsByUserId()); @@ -102,8 +102,7 @@ const UsersPage: FC = () => { authMethodsQuery.isLoading || groupsByUserIdQuery.isLoading; - const canViewOrganizations = experiments.includes("multi-organization"); - if (canViewOrganizations && location.pathname !== "/deployment/users") { + if (showOrganizations && location.pathname !== "/deployment/users") { return ; } @@ -160,7 +159,7 @@ const UsersPage: FC = () => { menus: { status: statusMenu }, }} usersQuery={usersQuery} - canViewOrganizations={canViewOrganizations} + canViewOrganizations={showOrganizations} canCreateUser={canCreateUser} /> From d479f61e224930692dc567aff270220b038488aa Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Fri, 20 Sep 2024 21:21:34 +0000 Subject: [PATCH 2/2] he's back --- site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx | 1 + site/src/pages/TemplatesPage/TemplatesPageView.tsx | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx index e8b32bffb4259..f07ad24df133c 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx @@ -12,6 +12,7 @@ import { TemplatesPageView } from "./TemplatesPageView"; const meta: Meta = { title: "pages/TemplatesPage", + decorators: [withDashboardProvider], parameters: { chromatic: chromaticWithTablet }, component: TemplatesPageView, args: { diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx index 8e6e8388fd269..05dde1141c10f 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx @@ -38,7 +38,6 @@ import { TableRowSkeleton, } from "components/TableLoader/TableLoader"; import { useClickableTableRow } from "hooks/useClickableTableRow"; -import { useDashboard } from "modules/dashboard/useDashboard"; import { linkToTemplate, useLinks } from "modules/navigation"; import type { FC } from "react"; import { useNavigate } from "react-router-dom";