From 7ac3cbe772b6ee2b2594dad2bc10343519209f75 Mon Sep 17 00:00:00 2001 From: Presley Pizzo <1290996+presleyp@users.noreply.github.com> Date: Mon, 23 May 2022 13:25:46 -0400 Subject: [PATCH] Make workspace machine ephemeral to limit polling (#1674) --- site/src/pages/WorkspacePage/WorkspacePage.tsx | 9 ++++----- site/src/xServices/StateContext.tsx | 3 --- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/site/src/pages/WorkspacePage/WorkspacePage.tsx b/site/src/pages/WorkspacePage/WorkspacePage.tsx index cf9c9bb5b9..7670286a4f 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.tsx @@ -1,5 +1,5 @@ -import { useActor } from "@xstate/react" -import React, { useContext, useEffect } from "react" +import { useMachine } from "@xstate/react" +import React, { useEffect } from "react" import { useParams } from "react-router-dom" import { ErrorSummary } from "../../components/ErrorSummary/ErrorSummary" import { FullScreenLoader } from "../../components/Loader/FullScreenLoader" @@ -8,14 +8,13 @@ import { Stack } from "../../components/Stack/Stack" import { Workspace } from "../../components/Workspace/Workspace" import { firstOrItem } from "../../util/array" import { getWorkspaceStatus } from "../../util/workspace" -import { XServiceContext } from "../../xServices/StateContext" +import { workspaceMachine } from "../../xServices/workspace/workspaceXService" export const WorkspacePage: React.FC = () => { const { workspace: workspaceQueryParam } = useParams() const workspaceId = firstOrItem(workspaceQueryParam, null) - const xServices = useContext(XServiceContext) - const [workspaceState, workspaceSend] = useActor(xServices.workspaceXService) + const [workspaceState, workspaceSend] = useMachine(workspaceMachine) const { workspace, resources, getWorkspaceError, getResourcesError, builds } = workspaceState.context const workspaceStatus = getWorkspaceStatus(workspace?.latest_build) diff --git a/site/src/xServices/StateContext.tsx b/site/src/xServices/StateContext.tsx index 7606b626c8..da7af13f13 100644 --- a/site/src/xServices/StateContext.tsx +++ b/site/src/xServices/StateContext.tsx @@ -6,13 +6,11 @@ import { authMachine } from "./auth/authXService" import { buildInfoMachine } from "./buildInfo/buildInfoXService" import { siteRolesMachine } from "./roles/siteRolesXService" import { usersMachine } from "./users/usersXService" -import { workspaceMachine } from "./workspace/workspaceXService" interface XServiceContextType { authXService: ActorRefFrom buildInfoXService: ActorRefFrom usersXService: ActorRefFrom - workspaceXService: ActorRefFrom siteRolesXService: ActorRefFrom } @@ -38,7 +36,6 @@ export const XServiceProvider: React.FC = ({ children }) => { authXService: useInterpret(authMachine), buildInfoXService: useInterpret(buildInfoMachine), usersXService: useInterpret(() => usersMachine.withConfig({ actions: { redirectToUsersPage } })), - workspaceXService: useInterpret(workspaceMachine), siteRolesXService: useInterpret(siteRolesMachine), }} >